C++学习之成员函数的访问属性与继承属性对虚表构建的影响--个人理解
2014-03-28 15:39
666 查看
在C++学习之深入理解虚函数--虚函数表解之后,我感觉虚表的构建跟虚函数在基类中的访问属性、继承属性、在子类中的访问属性都没关系。
反正也就27种情况,自己可以试下:如下面
输出:
in derived1
in derived2
in derived3
反正也就27种情况,自己可以试下:如下面
#include<iostream> #include<cstdlib> class parent1 { public: virtual void print(){ std::cout<<"in parent1"<<std::endl; } }; class derived1 :public parent1{ private: virtual void print(){ std::cout<<"in derived1"<<std::endl; } }; class parent2 { private: friend void parFriend2(parent2*p); virtual void print(){ std::cout<<"in parent2"<<std::endl; } }; void parFriend2(parent2*p){ p->print(); } class derived2:protected parent2{ private: virtual void print(){ std::cout<<"in derived2"<<std::endl; } }; class parent3 { private: friend void parFriend3(parent3*p){ p->print(); } virtual void print(){ std::cout<<"in parent3"<<std::endl; } }; void parFriend3(parent3*); class derived3 :private parent3{ protected: virtual void print(){ std::cout<<"in derived3"<<std::endl; } }; int main(int argc,char** argv){ parent1* p1=new derived1; p1->print(); parent2* p2=(parent2*)new derived2; parFriend2(p2); parent3* p3=(parent3*)new derived3; parFriend3(p3); return EXIT_SUCCESS; }
输出:
in derived1
in derived2
in derived3
相关文章推荐
- C++学习之路—继承与派生(一):基本概念与基类成员的访问属性
- C++第十二周【任务1】理解基类中成员的访问限定符和派生类的继承方式
- 第十二周C++【任务1】理解基类中成员的访问限定符和派生类的继承方式
- C++学习之继承中的成员访问控制
- C++继承时派生类的成员访问属性
- C++ 类的继承,子类以及之类的对象 对父类成员函数的访问权限
- 2013级C++第12周(春)项目——成员的访问属性、多重继承 【项目2 - 教师兼干部类】
- c++ public, protected, private成员变量,成员函数继承和访问规则实例代码
- C++中的继承关系、访问限定符,六个默认成员函数以及菱形继承和虚继承
- C++成员访问控制,以及C++继承方式对成员访问控制的影响
- 《C++第十二周实验报告1-1》----理解基类中成员的访问限定符和派生类的继承方式
- C++第十三周任务-项目一(理解基类中成员的访问限定符和派生类的继承方式)
- C++继承时派生类的成员访问属性
- C++学习笔记:3.3.5 继承中的同名成员变量和函数
- 深入理解C++对象模型-成员函数的本质以及虚函数的实现(非虚继承)
- C++基础(八)继承与派生——派生类成员的访问属性
- C++的继承操作---基类指针访问派生类问题---基类成员恢复访问属性问题
- 2013级C++第12周(春)项目——成员的访问属性、多重继承
- 2013级C++第12周(春)项目——成员的访问属性、多重继承【 第2部分 实践项目】
- c++与Java中继承关系对成员访问权限的影响之比较