- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 3.3 Data Member 的存取
已知如下的代码:Point3d origin;origin.x = 0.0;对于x的存取的成本,视x和Point3d如何声明而定。x可能是个static member,也可能使个nonstatic member。Point3d可能是独立的(非派生)的class,也可能是从另一个单一的base class派生而来;甚至可能从多重继承或虚拟继承而来。对于通过类对象和指针来存取x,也会有...
2018-10-25 08:11:54 284
原创 3.2 Data Member的布局(Data Member Layout)
已知下面一组data member:class Point3d{public: //...private: float x; static List<Point3d*>* freeList; float y; static const int chuckSize = 250; float z;};Nonstatic data members在class o...
2018-10-24 08:18:46 173
原创 3.1 Data Member的绑定(The Bindling of a Data Member)
对于如下的钻石继承(菱形继承):class X{};class Y: public virtual X{};class Z: public virtual X{};class A: public Y,public Z{};上述X,Y,Z,A中没有任何的一个class内含明显的数据,其间表示了继承关系,每个class的大小都不会为0,即使是class X的大小也不会为0(机器有关...
2018-10-23 16:29:03 215
原创 2.4 成员们的初始化队列(Member Initialization List)
当你写下一个constructor时,就有机会设定class members的初值。为了让程序能够被顺利编译,有4种情况你必须使用member initialization list:当初始化一个reference member时; 当初始化一个const member时; 当调用一个base class的constructor,而它有用一组参数时; 当调用一个member class ...
2018-10-19 11:16:38 515
原创 2.3 程序转化语义学(Program Transformation)
显示的初始化操作(Explicit Initialization)已知有这样的定义:X x0;下面的三个定义,每一个都明显地以x0来初始化其class object:void foo_bar(){ X x1(x0); //定义了x1 X x2 = x0; //定义了x2 X x3 = X(x0); //定义了x3}必要的程序转化有两个阶段:重写每一个定义,...
2018-10-11 11:00:41 476
c++并发编程实战(C++11)pdf 高清
2018-12-17
高质量C++/C编程指南
2018-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人