08 2013 档案

摘要:1、在类的定义中进行的,只有const 且 static 且 integral 的变量。2、在类的构造函数初始化列表中, 包括普通变量,const常量(不包含第一种情况)和Reference变量。3、在类的定义之外初始化的,包括static变量。因为它是属于类的唯一变量。4、普通的变量可以在构造函数的内部,通过赋值方式进行。当然这样效率不高。5.const数据成员(非static)必须在构造函数的初始化列表中初始化。6.数组成员是不能在初始化列表里初始化的。7.const static 和static const是一样的,这样的变量可以直接在类定义中初始化,也可以在类外。说明了一个问题:C++ 阅读全文
posted @ 2013-08-24 22:24 songnb_7 阅读(273) 评论(0) 推荐(0)
摘要:因为类的静态成员变量是所有实例共用的.所以得在类外初始化.调用的时候可以通过对象调用,也可以通过类直接调用classA{public:inti;//有默认值};classB{public:staticintn;staticAAobj;};intB::n=1;//静态成员变量的初始化AB::Aobj;//静态成员变量的初始化(实例化)voidmain(){BBobj;printf("B::n=%dBobj.n=%dBobj.Aobj.i=%d/n",B::n,Bobj.n,Bobj.Aobj.i);}私有的静态成员变量也是放在类外初始化的.这看起来跟它的私有属性不相符.再做下 阅读全文
posted @ 2013-08-24 21:43 songnb_7 阅读(183) 评论(0) 推荐(0)
摘要:new 是一个操作符,可以重载malloc是一个函数,可以覆盖new 初始化对象,调用对象的构造函数,对应的delete调用相应的析构函数malloc仅仅分配内存,free仅仅回收内存 阅读全文
posted @ 2013-08-22 22:06 songnb_7 阅读(134) 评论(0) 推荐(0)
摘要:在类中,如果什么都没有,则类占用1个字节,一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,如一个类只有一个int则占用4字节而不是5字节。如果只有成员函数,则还是只占用1个字节,因为类函数不占用空间虚函数因为存在一个虚函数表,需要4个字节,数据成员对象如果为指针则为4字节,注意有字节对齐,如果为13字节,则进位到16字节空间。子类会继承父类的大小,虚继承因为引入了指针所以加4无论多少个虚函数,大小都是4 阅读全文
posted @ 2013-08-21 20:58 songnb_7 阅读(275) 评论(0) 推荐(0)