// virtualbase.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
using namespace std;
class A
{
protected:
int a;
public:
A(int aa):a(aa)
{}
~A(void)
{}
};
class B:virtual public A
{
protected:
int b;
public:
B(int aa,int bb):A(aa),b(bb)
{}
~B(void)
{}
};
class BB:virtual public A
{
protected:
int bb;
public:
BB(int bbb,int aaa):bb(bbb),A(aaa)
{}
~BB(void)
{}
};
class C:public B,public BB
{
protected :
int c;
public:
C(int a,int b,int bb,int cc):B(a,b),BB(a,bb),c(cc),A(a)
{}
~C(void)
{}
void showc()
{
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
C cc(1,2,3,4);
cc.showc();
return 0;
}
本文通过一个C++程序示例介绍了多重继承和虚基类的概念及使用方法。程序定义了四个类:A、B、BB和C,其中C类从B和BB两个类派生,并且这两个基类都是虚继承自基类A。示例展示了如何构造此类继承关系,并在派生类中正确初始化基类成员。

被折叠的 条评论
为什么被折叠?



