深入了解对象模型
深入了解对象模型
林夕水心
这个作者很懒,什么都没留下…
展开
-
《深度探索C++对象模型》第五章构造、析构、拷贝语意学收货
1.不要把析构函数声明为纯虚函数 因为如果这个类被继承了,那么子类在析构时,是会调用父类的析构函数的,而如果纯虚函数被调用,就会终止程序(这个不同编译器不一样) 2.指针取地址上的内容和指针指向对应地址的区别 在看书过程中看到这样一段代码: 本来我以为delete是有问题的,因为我理解成了这样: heap=&local 但是这两者是有区别的。书上那样的写法,其实是使...原创 2019-10-16 10:16:42 · 161 阅读 · 0 评论 -
《深度探索C++对象模型》第二章构造函数语意学收获
1.究竟是不是每个类都有构造函数 按照C++标准规定,每个类都有显式的或者隐式的构造函数和拷贝构造函数,但是编译器会区分这个类中的构造函数和拷贝构造函数是有用或者无用的,如果判定为有用,编译器就会将这个构造函数生成代码,如果没用,就不会生成代码。(简单来说就是C++规定了每个类都有构造和拷贝构造函数,但是编译器不一定为每个类生成构造或拷贝构造函数,下面的内容都是指编译以后是否是否具有构造函数,所...原创 2019-10-14 13:48:36 · 246 阅读 · 0 评论 -
《深度探索C++对象模型》第四章 Function语意学收货
目录 1.编译器对类普通成员函数的处理 2.编译器对静态成员函数的处理 3.编译器对虚函数的处理 4.虚函数指针和虚函数表 5.虚函数继承中的几种情况区分 情况一: 情况二: 情况三: 情况四: 6.多重继承下的虚函数表布局 ???但是其中对于打星号的调整this指针的项不是很理解。 7.inline关键词理解 1.编译器对类普通成员函数的处理 我们知道,其实类是编译...原创 2019-10-11 17:29:42 · 266 阅读 · 0 评论 -
《深度探索C++对象模型》第三章 Data语意学收获
1.虚继承 虚继承是建立在多重继承之上的,当多重继承时,有可能存在重复继承的情况,如下图所示 在a中,B1,B2虚继承了A,所以当D多重继承了B1和B2时,最后只是间接的继承了一个A类 在b中,因为没有使用虚继承,所以最后D间接继承了两个A类,显然这样是不行的。 虚继承类并不是存放在类对象空间中的,而是会在类对象空间中存放一个指针,来指向虚继承的存储空间。 用此例来探究数据成员的存...原创 2019-10-10 16:04:48 · 146 阅读 · 0 评论 -
《探索C++深度模型》第一章 关于模型收货
1.类成员分类 在C++中,有两种class data members:static 和 nonstatic,以及三种class member functions:static、nonstatic和virtual。 2.C++对象的存储结构 有一个这样的类 class Point{ public: Point(float xval); virtual ~Point();...原创 2019-10-10 14:16:36 · 111 阅读 · 0 评论