扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
举个例子,交通工具类可以派生出汽车和船连个子类,但拥有汽车和船共同特性水陆两用汽车就必须继承来自汽车类与船类的共同属性。
当一个派生类要使用多重继承的时候,必须在派生类名和冒号之后列出所有基类的类名,并用逗好分隔。
#include <iostream>
usingnamespacestd;
classVehicle
{
public:
Vehicle(intweight =0)
{
Vehicle::weight =weight;
}
voidSetWeight(intweight)
{
cout<<"重新设置重量"<Vehicle::weight =weight;
}
virtualvoidShowMe() =0;
protected:
intweight;
};
classCar:publicVehicle//汽车
{
public:
Car(intweight=0,intaird=0):Vehicle(weight)
{
Car::aird =aird;
}
voidShowMe()
{
cout<<"我是汽车!"<}
protected:
intaird;
};
classBoat:publicVehicle//船
{
public:
Boat(intweight=0,floattonnage=0):Vehicle(weight)
{
Boat::tonnage =tonnage;
}
voidShowMe()
{
cout<<"我是船!"<}
protected:
floattonnage;
};
classAmphibianCar:publicCar,publicBoat//水陆两用汽车,多重继承的体现
{
public:
AmphibianCar(intweight,intaird,floattonnage)
:Vehicle(weight),Car(weight,aird),Boat(weight,tonnage)
file://多重继承要注意调用基类构造函数
{
}
voidShowMe()
{
cout<<"我是水陆两用汽车!"<}
};
intmain()
{
AmphibianCar a(4,200,1.35f);//错误
a.SetWeight(3);//错误
system("pause");
}
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者