c++是一种面向对象的编程语言的一个很明显的体现就是对继承机制的支持,c++中继承分很多种,按不同的分类有不同分类方法,比如可以按照基类的个数分为多继承和单继承,可以按照访问权限分为public继承、protected继承和private继承,按照是否是虚拟继承可以分为virtual继承和non-virtual继承。当然这里的分类标准都是有重叠的部分,比如,non-virtual继承又可以分为单继承和多继承。这里要讨论的是虚函数,因此主要从virtual和non-virtual继承两个方面来展开讨论分析。
1 class base1 2 { 3 public: 4 virtual void f(){} 5 virtual void h(){} 6 }; 7 class base2 8 { 9 public: 10 virtual void g(){} 11 }; 12 class derive1:public base1 13 { 14 public: 15 virtual void f(){} 16 virtual void f1(){} 17 } 18 class derive2:public base1,public base2 19 { 20 public: 21 virtual void f(){} 22 virtual void g(){} 23 virtual void g1(){} 24 };
1 class base1 2 { 3 public: 4 virtual void f(){} 5 }; 6 class base2 7 { 8 public: 9 virtual void g(){} 10 }; 11 class derive1:virtual public base1 12 { 13 public: 14 virtual void f(){} 15 virtual void f1(){} 16 } 17 class derive2:virtual public base1,virtual public base2 18 { 19 public: 20 virtual void f(){} 21 virtual void g(){} 22 virtual void g1(){} 23 };
原文:http://www.cnblogs.com/wangyichao/p/3729724.html