CPP学习之——多重继承(12.11)

一 概述

C++中有两种继承方式,单一继承和多重继承,只有一个基类的叫单一继承,拥有多个基类的叫多重继承

二 示例演示及结果输出

2.1 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<iostream>
using namespace std;
class father
{
private:
int tall;
public:
void setA(int a){tall=a;}
void printA(){cout<<"身高="<<tall<<endl;}
};
class mother
{
private:
int weight;
public:
void setB(int b){weight=b;}
void printB(){cout<<"体重="<<weight<<endl;}
};
class son:public father,private mother
{
private:
int age;
public:
void setC(int c){age=c;}
void setb(int b){setB(b);}
void printC(){printA(),printB(),cout<<"年龄="<<age<<endl;}
};
int main()
{
son a;
a.setA(55);
a.setb(80);
//a.setB(80);
a.setC(12);
a.printC();

return 0;
}

2.2 输出结果

1
2
3
身高=55
体重=80
年龄=12

2.3 代码说明

  • 以私有方式继承后,基类的私有成员变成不可访问,而公有成员和保护成员变成了私有,派生类中的成员想要访问它们,必须定义一个公有函数作为接口
  • 以私有方式继承后,父类mother中的weight成员无法访问,同时,父类mother中的公有成员函数在派生类son中变成私有的,因此我们不能直接调用son类的私有成员函数setB();因此直接访问导致出错
  • 我们需要在son子类中添加一个公有的setb()函数,并且该函数可以设置由父类mother继承来的数据成员weight的值