虚继承

上一篇 / 下一篇  2007-11-27 14:58:36 / 个人分类:c++

虚继承...这已经是我第三次编写虚继承的心得了..

出于种种外界原因,编辑了两次的 虚继承心得 工作,全部白白浪费..IBM laptop我不说啥了..

只好委屈自己了.也委屈了大家..

心得 = 0;//心情好时候再写吧,,都怪IBM laptop...一切见代码吧..

成员函数虚继承;  子类 要声明virtual父类 的父类 的数据成员

代码如下:

实例:

// 虚继承.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;
////
class A
{
public:
 int A_i;
 A(int i):A_i(i){}
 void func()
 {
  cout << "A.func()" << A_i <<endl;
 }
};
////
class Base1:virtual public A
{
public:
 Base1(int i):A(i){}
};
////
class Base2:virtual public A
{
public:
 Base2(int i):A(i){}
 void Base2func()
 {
  cout <<"Base2func()"<< A_i <<endl;
 }
};
////
class Derived:public Base1,public Base2
{
public:
 Derived(int i,int j,int k):A(i),Base1(j),Base2(k){}
 void call_func()
 {
  func();
 }
};
//////
int _tmain(int argc, _TCHAR* argv[])
{
 Derived d(3,1,2);//需要初始化... 3 起作用
 d.call_func();
 d.Base2func();
 
 Base1 b1(1);
 b1.func();

 Base2 b2(2);
 b2.func();

 getchar();
 return 0;
}


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar