自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pty_2007的专栏

走一小步比不走更好,不断积累学习……

  • 博客(29)
  • 资源 (21)
  • 收藏
  • 关注

原创 基类列表中不能有重复出现的基类

派生类的基类列表中不能有重复出现的基类。下列代码会报错:#include using namespace std;class Base1{};class Base2{};class Drived: public Base1, public Base2, public Base2{};void main(){ Drived drived;}

2013-04-21 10:07:02 875

原创 c++ primer 17.22 实验代码

#include using namespace std;namespace primerLib{ void com(){ cout << "com()" << endl; } void com(const void *){ cout << "com(const void *)" << endl; }}void com(int){ cout << "com(int)"

2013-04-21 09:51:58 826

转载 auto_ptr解析

auto_ptr是当前C++标准库中提供的一种智能指针,或许相对于boost库提供的一系列眼花缭乱的智能指针, 或许相对于Loki中那个无所不包的智能指针,这个不怎么智能的智能指针难免会黯然失色。诚然,auto_ptr有这样那样的不如人意,以至于程序员必须像使用”裸“指针那样非常小心的使用它才能保证不出错,以至于它甚至无法适用于同是标准库中的那么多的容器和一些算法,但即使如此,我们仍然不能否认这个

2013-04-20 17:26:39 551

原创 异常的抛出基本问题

1.使用throw exception object ;语句进行异常的抛出,异常对象可以是内置数据类型,也可以是自定义数据类型或者标准库中的异常数据类型;2.3.catch匹配次序是一次配中,随后则不再匹配。所以,对于一个派生类对象,catch字句的放置顺序就要留意了,应该将catch派生类异常对象的语句放置在catch基类异常对象语句的前面。4.可以使用throw;语句二次抛出异常。

2013-04-20 15:25:28 860

原创 构造函数和析构函数的相互调用

看《代码大全》的时候,看到这么个问题,所以特意写代码进行了下测试。(VC 6.0 WIN XP SP3 32BIT)代码如下:#include using namespace std;class Test{public: Test(){ // ~Test(); cout << "this is constructors." << endl; } ~Test()

2013-04-18 09:15:56 931

原创 类的inline函数

inline关键词在类的函数声明或者定义部分出现一次就可以了,当然出现两次岂不是更加完整吗!下列代码严重了这点(VC 6.0 WIN XP 32BIT)#include using namespace std;class Test{public: Test(){} ~Test(){} void show();};inline void Test::show(){

2013-04-17 20:21:36 730

原创 const虚函数

在C++中,对于两个函数,一个有const修饰,一个没有const修饰,认为这两个函数是不同的函数。而虚函数的要求是,函数原型相同,函数原型包括:函数返回值、函数名、参数列表、const修饰符。这里const修饰符包括函数返回值的修饰,函数形参的修饰,函数本身的修饰。只要有一处const没有对上 ,那么就不是虚函数的重载,而是发生了同名覆盖现象。这个与编译器的工作原理有关。所以对于基类的c

2013-04-17 10:14:41 4218

原创 重载函数的继承问题

如果基类有很多歌重载函数(注意:重载函数应该是属于同一个作用域的),那么子类要想使用基类的这些重载函数的话,要么一个函数都不定义,要么重新定义所有的重载函数。因为如果只定义一个或者几个,都会导致”同名覆盖“,而无法达到目的。

2013-04-17 09:43:08 801

原创 类的同名覆盖和函数重载

有下列代码:#include using namespace std;struct Base{ void foo (int){};};struct Derived: public Base{ void foo(string){};};void main(){ Derived d; d.foo(1024);}这是《C++ primer》题15.23的一

2013-04-17 09:26:00 1051 1

原创 C++类继承中的访问控制符可以省去

C++类继承中的访问控制符可以省去:1.采用class关键字进行的类继承默认采用继承方式是private,如下例:#include using namespace std;class TestA{};class TestB: TestA{};void main(){ TestA a; TestB b;} 2.采用sruct关键字进行的类继承默认采用继承方式

2013-04-15 16:15:53 874

原创 用测试程序分析类的内存布局2

下列代码:#include using namespace std;class Test{public: int a; char b;//注释掉试试 int c;//注释掉试试 char d; char e;};void main(){ cout << sizeof(Test) << endl;}我的编译环境是VC 6.0 WIN XP 32位.

2013-04-15 15:04:05 624

原创 虚函数的实现机制

这里解释的是虚函数的机制。涉及的比较底层。下列代码:#include using namespace std;class Test{public: virtual void display()const;};void Test::display() const{//此处的const不要忘记了 cout << "this is display." << endl;}

2013-04-11 16:38:49 675

原创 继承类与基类内存分配规则

其实我一直挺困惑继承类与基类之间的内存分配是怎么进行的。继承类是复制一份基类的数据成员还是在基类的数据成员后面加上自己的数据成员呢?我试图从下面的例子,得到几分蛛丝马迹。#include using namespace std;class A{public: A(){a = 10;} int a;};class B: public A{public: int b;

2013-04-11 15:18:42 1020

原创 void指针

1.void指针可以指向任意数据类型,即任意数据类型的指针都可以赋值给void指针;void要转换为其他类型的指针的话就要进行强制转换,并且这个转换过程是很容易出现问题的,要谨慎使用;2.void指针是不可以间接引用的,下来代码不能通过编译:#include using namespace std;void main(){ int value = 10; void

2013-04-11 11:41:44 727

原创 c++类内存布局分配规则

今天阅读《深度探索c++对象模型》,对c++类内存布局分配规则有了深刻的理解。之前自己写过测试程序测试内存布局的分配规则,书中总结的规律更加的完整:如果类不含有虚函数的话,那么使用sizeof(类名)得出的大小是类的非static成员的占用空间大小(注意内存对齐带来的消耗);如果类含有虚函数(不管数目是多少),那么使用sizeof(类名)得出的大小是类的飞static成员+4的值,这个

2013-04-11 11:22:04 993

原创 多态的实现手段

1.基类含有虚函数;2.使用new创建基类对象和子类对象,结果均保留在基类指针变量中;3.通过基类指针变量调用函数即可事实多态了。如下列示例代码:#include using namespace std;class BaseTest{public: BaseTest(){} BaseTest(const BaseTest&){} BaseTest operator=

2013-04-11 10:53:17 686

原创 C++的四个组成部分

在网上看到的一个帖子,然后觉得十分的有意思,就记录在这里。C++四个组成部分包括:better C、ADT、OO、GP。第一个是加强板C,例如函数重载、引用、默认参数等等;第二个ADT是抽象数据类型,就是单纯的class,即对象;第三个OO则是面向对象,就是ADT之间 的继承、派生、虚函数等等;第四个GP,也就是范型编程,就是C++的顶级技术模板技术了,STL到处充斥着GP技术

2013-04-11 10:35:13 2436 1

原创 c++中的struct和class

我们的教材大致是说,在c++ 中struct和class的不同在于访问控制符上的默认值不同。仅仅是这个深度而已。访问控制符上的处理不同,是因为c++要与c在使用struct时保持兼容性。在c++中,struct在c语言中的使用方式不仅仅被保留下来,同时还赋予了新的特性。见下列代码:#include using namespace std;struct Test{public:

2013-04-11 10:18:59 671

原创 带退出的循环体

#include using namespace std;void main(){ char ch; //first method begin cout << "please input ch(first): "; cin >> ch; cout << endl; while(ch != 'q'){ cout << "please input ch(first): ";

2013-04-10 15:59:14 975

原创 函数对象

让对象表现的和函数一样,这种技术在STL的算法库中满是遍布。《STL源码剖析》将函数对象翻译为”仿函数“。函数对象是这样的类的对象,这个类重载了函数调用运算符,即( )运算符。假设类Test有对象test,那么test(10)类的调用就类似函数调用,把这种情况称为函数对象。下列是一个示例代码:#include #include using namespace std;class

2013-04-10 11:38:12 638

原创 赋值运算符重载注意事项

1.赋值操作符重载函数必须声明为成员函数;2.赋值操作符重载函数的返回值必须是*this,即当前对象的引用。下面是一个示例代码:#include using namespace std;enum Result{ FAIL = 0, TRUE = 1};class Test{public: Test(){ value = 0; success = FAIL;

2013-04-10 10:04:37 868

原创 构造函数是支持手动调用的

在阅读《C++ primer》的时候,注意到,构造函数是可以手动调用的。以前没有怎么留意这个问题。这里做个记录。首先,手动调用构造函数系统实际上是创建了一个临时对象的,如果不保存这个临时对象,那么之后是无法使用这个对象的。采用手动调用构造函数是一种初始化对象的方式,《C++ primer》中使用的情景是,当cin的数据不合法时就调用构造函数初始化一个默认的对象出来。构造函数的手动调用的

2013-04-10 09:46:26 3276

原创 C++输入输出运算符重载注意事项

1.输出运算符重载声明方法:ostream& operator因为ostream对象是不支持复制的,所以第一个参数和返回的参数均是引用。第二个参数是操作对象,为了避免传入对象时发生对象的复制(即调用复制构造函数),这里也使用引用。又为了避免修改这个对象,所以使用const限定。2.输入运算符重载声明方法:istream& operator>> (istream &, Test &)

2013-04-10 09:26:33 908

原创 项目开发感悟记录六:typedef的神功

这是一个小小的记录,因为这个错误吃过很多亏,所以记录下来。问题是这样的,我们不同的开发使用ID的时候,有人使用了LONG类型,有人使用INT类型,虽然这两者之间是可以转换的,但是带来很多的不便,而如果同意使用typedef定义的数据类型,然后修改只修改这一句话,那么问题就简单很多,程序的维护也变得十分的简单。

2013-04-09 15:32:53 593

原创 为什么使用数组?

数组是一组相同数据类型数据的集合。学习数组的时候知道数组的优点是可以随机访问。但是我们面临的情景是有多少需要这种优秀的随机访问呢?这种随机性在我们实际的生产工作中实际上是不多见的。《代码大全》中推荐,考虑用容器取代数组,这样为随机的东西添加上规则,这样的设计是可靠的,消除 了随机引入的不可靠性。

2013-04-09 15:25:12 2003

原创 c++析构对象数组的顺序

C++ 析构函数是在对象被撤销时自动执行的,这里的“对象被撤销时”包括:1.对象生命期结束;2.对象被delete回收。对于数组对象的回收顺序遵循“FILO”的原则,即下标最小的对象在最后被析构掉。下列是个例子:#include using namespace std;class A{public: A(){ cout << "con cout = " << count++ <<

2013-04-09 09:46:42 1506

原创 static数据成员的初始化规则

static数据成员一定要遵循“类内声明,类外定义”的规定。而初始化只要是放在定义语句中就必定不会出错;只有当static数据成员同时又是const成员时,就可以在声明的时候为其初始化,否则一律要在定义语句中进行初始化;

2013-04-08 11:10:19 932

原创 c++的static关键词注意事项

static只能出现在类体中,类外不出现static关键词,static数据成员和static函数成员都遵循这个规定;static的访问控制有效;static数据成员必须在类体外定义,类体内只是声明而不包括定义的,这里要严格理解声明语句和定义语句的不同了。如下列代码:class A{public:static int a;};int A::a = 10;代码static int a

2013-04-08 11:04:46 710

原创 C++的friend关键词的注意事项

1.friend关键词只能出现在类定义的内部;2.友元的声明可以出现在类中的任何地方;3.友元声明语句不受访问控制的影响;4.友元可以是普通函数,类,或者类成员函数;

2013-04-08 10:59:45 649

Miracl 用户 帮助文档

Miracl User帮助文档,包含安装说明等等东西。

2014-04-17

Miracl 大数库 帮助文档

网页版 和 pdf版的Miracl帮助文档。中文的Miracl的帮助信息较少,而这个英文版本的解释不复杂,和适合使用。

2014-04-17

MySQL 5.0 WIN32

MySQL 5.0 WIN32

2013-07-07

Athena Framework for Java 2.0

Athena Framework for Java 2.0 源代码

2013-07-07

Athena MetaData Console

Athena Framework 的元数据管理器 很容易上手。

2013-07-07

Athena Framwork 示例

Athena Framwork 给的官方例子,例子通俗易懂,很好的说明了Athena Framwork的作用。

2013-07-07

Athena Framework developer Guide

Athena Framework是一个新基于元数据的ORM工具,它对比Hibernate还是有很多先进之处。这个手册写的也十分到位,建议阅读,自然就对它能做什么了解清楚。

2013-07-07

计算机网络原理自考PPT

很详细,值得非常一看

2013-03-25

tpcw-nyu-uva-client 客户端

tpcw-nyu-uva-client 客户端

2013-01-10

jdbc for java

jdbc for java

2013-01-08

tpcw 纽约大学版

tpcw 纽约大学版

2013-01-08

servlet-api

servlet-api

2013-01-08

jboss-j2ee

jboss-j2ee

2013-01-08

JSP™ ApplicationP

JSP™ and XML Integrating XML and Web Services in Your JSP™ ApplicationP JSP™ and XML Integrating XML and Web Services in Your JSP™ ApplicationP 英文版

2011-11-06

hla汇编语言编译器

hla编译器 最新版本。hla比masm和tasm更加适合初学者。《汇编语言编程艺术》的作者开发的这个编译器。

2011-10-13

aspectj-1.6.11

最新版本 避免error at:0 can't find referenced pointcut allAddMethod错误;

2011-09-23

MyEclipse 9.0 m2破解

MyEclipse m2 的破解介绍。 含有注册机和图文教程。自测有效。 方法仅供学习交流!

2011-09-14

操作系统课程设计-unix文件系统

完整的课程设计报告。基于磁盘存储设备的UNIX文件系统

2011-04-29

apache+tomcat+geoserver地图配置文档

apache+tomcat+geoserver地图配置文档apache+tomcat+geoserver地图配置文档apache+tomcat+geoserver地图配置文档apache+tomcat+geoserver地图配置文档

2011-04-29

postgreSQL配置

postgreSQL配置postgreSQL配置postgreSQL配置

2011-04-29

OpenLayers-2.10.zip

openlayers 用来做图像层的 openlayers openlayers

2011-04-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除