- 博客(8)
- 资源 (9)
- 收藏
- 关注
原创 深度探索C++对象模型----data member的存取
Static Data Members 程序代码片段: class Point3d{ public: ..... private : float x; static List *freeList; float y;
2014-11-25 20:38:03 648
原创 深度探索C++对象模型---Data member的布局(Data member Layout)
已知下面一组data member: class Point3d{ public: ..... private : float x; static List *freeList; float y; static const
2014-11-20 11:15:54 532
原创 深度探索C++对象模型---data语意学
一个空的class如: //sizeof(X) ==1 class X{}; 事实上并不是空,它有一个隐藏的1byte大小,那是被编译器安插进去的一个char,这使得这一class的两个Object得以在内存中配置独一无二的地址: X a,b; if(&a == &b) cerr //sizeof
2014-11-19 15:46:12 491
原创 深度探索C++对象模型------Data member的绑定
考虑下面的一段程序片段 //某个foo.h头文件,从某处含入 extern float x; //程序员的Point3D.h文件 class Point3D{ public : Point3D(float,float,float); //问题:被传回和被设定的x是哪一个x呢?
2014-11-17 11:02:15 437
原创 构造函数语意学----初始化列表
当你写下一个constructor时,就有机会设定class member的初值。要不是经由member initialization list,就是在constructor函数本体之内。 在下列情况下,为了让你的程序能够被顺利编译,你必须使用member initialization list: 1.当初始化一个reference member 时。 2.当初始化一
2014-11-16 16:51:16 557
原创 构造函数语意学----程序转化语意学
显式的初始化操作 已知这样的定义: X x0; 下面的三个定义,每一个都明显的以x0来初始化其class Object: void foo_bar(){ X x1(x0); X x2 = x0; X x3 = X(x0); //..... } 必要的程序转化有两个阶
2014-11-16 14:54:56 400
原创 深度探索C++对象模型--带有default constructor的Base class
如果每一个没有任何constructor的class派生自一个”带有default constructor“的Base class,那么这个derived class的default constructor 会被视为有用的constructor,并因此需要被合成出来。它将调用上一层Base class的default constructor(依据他们的声明顺序),对一个后继派生的class而言,这
2014-11-11 16:08:37 792
原创 深度探索C++对象模型-----带有Default Constructor的member class object
implicitly default constructor 对于class X ,如果没有任何User-declared constructor,那么会有一个default constructor被隐式(implicitly)声明出来....一个被隐式声明出来的default constructor将是一个trivial(浅薄而无能,没啥用的)constructor.
2014-11-11 14:53:57 765 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人