摘要:
参考:http://www.cnblogs.com/itech/archive/2009/02/27/1399996.html一 虚继承1) 代码:#includeusingnamespacestd;classB{public:inti;virtualvoidvB(){cout(pB);pGD->i=10;pGD->x=20;pGD->y=30;pGD->a=40;PrintMemberAndVT(pGD);deletepGD;}6)验证代码结果:7)总结:虚继承,使公共的基类在子类中只有一份,我们看到虚继承在多重继承的基础上多了vbtable来存储到公共基类的偏移。二 阅读全文
posted @ 2012-07-15 18:19
Mr.Rico
阅读(721)
评论(0)
推荐(0)
摘要:
之前有对虚函数机制的讲解,见这先讨论是多级继承的虚函数表。首先是没有函数覆盖的情况,继承方式如下图所示:对于实例DDerive dd;其所对应的虚函数列表是:测试代码如下:View Code classBase{public:typedefvoid(Base::*Fun)();virtualvoidf(){Funq=&Base::f;cout<<"Base::f->"<<(int)*(void**)&q<<endl;}virtualvoidg(){Funq=&Base::g;cout<<" 阅读全文
posted @ 2012-07-15 17:24
Mr.Rico
阅读(670)
评论(0)
推荐(0)
摘要:
C++中的虚函数机制 虚函数的定义:虚函数必须是类的非静态成员函数(且非构造函数),其访问权限是 public(可以定义为 private or proteceted, 但是对于多态来说,没有意义)。在基类的类定义中定义虚函数的一般形式:virtual 函数返回值类型 虚函数名(形参表){ 函数体 }虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义(形式也是:virtual 函数返回值类型 虚函数名(形参表){ 函数体 }),在派生类中重新定义的函数应与虚函数具有相同的形参个数和形参类型。以实现统一的接口,不同定 阅读全文
posted @ 2012-07-15 14:06
Mr.Rico
阅读(2128)
评论(0)
推荐(1)

浙公网安备 33010602011771号