多重继承:一个类可以从多个父类派生。
//---------main.cpp------------
#include <iostream>
#include <string>
//多重继承
using namespace std;
class Bed
{
protected:
int weight;
public:
Bed(){weight=0;}//构造函数
void sleep(){std::cout<<"Sleeping ..."<<endl;}
void setWeight(int i){weight = i;}
};
class Sofa
{
protected:
int weight;
public:
Sofa(){weight = 0;}//构造函数
void watchTV(){std::cout<<"Watch TV ..."<<endl;}
void setWeight(int i){weight = i;}
};
class SleeperSofa : public Bed,public Sofa
{
public:
SleeperSofa(){}//构造函数
void foldOut(){std::cout<<"Fold out the sofa"<<endl;}
};
int main(int argc,char **argv)
{
SleeperSofa ss;
ss.sleep();
ss.watchTV();
ss.foldOut();
return 0;
}
Sleeping ...
Watch TV ...
Fold out the sofa
请按任意键继续. . .
注:
两个父类中都有setWeight(),若要访问setWeight();
为了避免名称冲突,必须在setWeight名称前面加前缀以说明父类;
ss.Sofa::setWeight(20);
ss.Bed::setWeight(10);
1