CPP学习之——虚基类不会产生两义性(12.18)

一 概述

我们仍以这样四个类:人类、父类、母类、子类,来演示派生类中调用基类相同的成员时,虚基类不会产生两义性

二 示例演示及结果输出

2.1 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
using namespace std;
class human
{
public:void walk(){cout<<"人类能够直立行走!"<<endl;}
};
class mother:virtual public human{};
class father:virtual public human{};
class son:public mother,public father{};
int main()
{
son tom;
tom.walk();
father Mick;
Mick.walk();
mother Jane;
Jane.walk();
human man;
man.walk();
return 0;
}

2.2 输出结果

1
2
3
4
人类能够直立行走!
人类能够直立行走!
人类能够直立行走!
人类能够直立行走!

2.3 代码说明

  • 派生类继承时,使用“virtual”修饰时,不会产生混淆问题