#include<iostream>
using namespace std;
class human
{
public:
void stand(){cout<<"人类能够直立行走!"<<endl;}
};
class father: virtual public human
{
public:
};
class mother: virtual public human
{
public:
};
class son:public mother,public father
{
public:
};
void main()
{
son Tom;
father Mike;
mother Jane;
Tom.stand(); //正确,成功调用子类的唯一的stand()函数
Jane.stand(); //正确,成功调用母类的唯一的stand()函数
Mike.stand(); //正确,成功调用父类的唯一的stand()函数
}
using namespace std;
class human
{
public:
void stand(){cout<<"人类能够直立行走!"<<endl;}
};
class father: virtual public human
{
public:
};
class mother: virtual public human
{
public:
};
class son:public mother,public father
{
public:
};
void main()
{
son Tom;
father Mike;
mother Jane;
Tom.stand(); //正确,成功调用子类的唯一的stand()函数
Jane.stand(); //正确,成功调用母类的唯一的stand()函数
Mike.stand(); //正确,成功调用父类的唯一的stand()函数
}
本文通过一个C++程序示例介绍了多重继承的概念,并演示了如何实现虚拟继承以解决二义性问题。程序中定义了一个基类human及两个派生类father和mother,最后创建了一个同时继承自这两个派生类的子类son。
725

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



