C++ 对象的内存布局(下)这篇文章的“单一虚拟继承”和“钻石型虚拟继承”时的类内存布局讲得不太清楚,我有一处疑问,我用的是VS2005。因此记录一下。 类继承图例如以下: 这里:类B被类B1和B2虚拟继承,而B1和B2同一时候被D继承。 B1的f()、B2的f()覆盖了B的f(); D的f()覆盖 ...
分类:
编程语言 时间:
2017-07-01 20:07:04
阅读次数:
231
一、成员函数 成员函数可以被看作是类作用域的全局函数,不在对象分配的空间里,只有虚函数才会在类对象里有一个指针,存放虚函数的地址等相关信息。 成员函数的地址,编译期就已确定,并静态绑定或动态的绑定在对应的对象上。对象调用成员函数时,早在编译期间,编译器就可以确定这些函数的地址,并通过传入this指针 ...
分类:
编程语言 时间:
2016-04-15 13:45:32
阅读次数:
188
C++ 对象的内存布局(下)这篇文章的“单一虚拟继承”和“钻石型虚拟继承”时的类内存布局讲得不太清楚,我有一处疑问,我用的是VS2005,因此记录一下。
类继承图如下:
这里:类B被类B1和B2虚拟继承,而B1和B2同时被D继承。
B1的f()、B2的f()覆盖了B的f();
D的f()覆盖了B1的f(),D的f1()覆盖了B1的f1()
D的f()覆盖了B2的f(),D的...
分类:
编程语言 时间:
2014-08-19 14:38:24
阅读次数:
228
虚继承和虚基类 虚继承:在继承定义中包含了virtual关键字的继承关系;
虚基类:在虚继承体系中的通过virtual继承而来的基类,需要注意的是:class CSubClass : public virtual CBase {};
其中CBase称之为CSubClass的虚基类,而不是说CBa.....
分类:
其他好文 时间:
2014-05-13 18:15:46
阅读次数:
435