
【深度探索c++对象模型】
文章平均质量分 73
风吹头飞扬
热爱Linux和C
展开
-
【深入探索c++对象模型】类对象所需内存大小讨论
一般而言其大小原创 2014-03-06 12:15:07 · 1097 阅读 · 0 评论 -
【深入探索c++对象模型】类对象所需内存大小讨论续写
#include #include using namespace std; class Point3d { public: // //private: float x; static list *freeelist; float y; static const int size = 250; char n; float z; }; int main() { Point3d mo原创 2014-03-07 15:57:35 · 908 阅读 · 0 评论 -
【深入探索c++对象模型】抽象类和纯虚函数的理解
参考【深入探索c++对象模型】析构、解构、拷贝语义学191-195页内容 纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是 1、为了方便使用多态特性,我们常常需要在基类中定义虚函数。 2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明原创 2014-02-25 15:02:32 · 1093 阅读 · 0 评论 -
【深入探索c++对象模型】c++中构造函数调用虚函数的讨论
参见【深入探索c++对象模型】213-219页 在一个class的constructor中,经由构造中的对象来调用一个virtual function中,其函数实体应该是在此class中有作用的那个,这是由constructors的调用顺序决定的。 #include #include using namespace std; class Base { public: Base(strin原创 2014-02-27 15:00:07 · 1101 阅读 · 0 评论 -
【深入探索c++对象模型】C++新手的两种常见误解
第2章:构造函数语义学 第一小节有关于默认构造函数建构的学习感悟: 有两个新手常见误解: 1、任何class如果没有定义default constructor,就会被合成一个。 应该是如果没有书中所列的四种情况而且有没有声明任何construcor的classes, 它们拥有的是implicit dafault constructors,它们实际上并不被合成出来。 2、编译器合成出来的原创 2014-02-24 11:11:44 · 812 阅读 · 0 评论 -
有关初始化构造函数何时由编译器生成的讨论?
#include "iostream" using namespace std; /* 1、带有默认构造函数的类对象成员; 2、 */ //讨论初始化构造函数 //主要讨论在有虚函数情况下的初始化构造函数问题 //含有虚函数的类对象维护一个vptr指向类中的vtbl class ZoolAnimal { public: ZoolAnimal(){} ~ZoolAnimal(){} vi原创 2014-08-23 16:03:30 · 1173 阅读 · 0 评论