多继承代码解析

来源:互联网 发布:mac终端获取文件路径 编辑:程序博客网 时间:2024/05/18 02:56
#include<iostream>
using namespace std;
/*
多继承的优缺点
实际生活中,一些事物往往会拥有两个或两个以上事物的属性,为了解决这个问题,C++引入了多重继承的概念。
多重继承的优点是对象可以调用多个基类中的接口。
多重继承的缺点是容易出现继承向上的二义性*/


class A
{
public:
A(int a):m_a(a){                                    // 由子类进行初始化,提供一个带参数的构造函数
cout << m_a << endl;
}      
void show(){ cout << "A running " << endl; }
void show1(){ cout << "A running " << endl; }
private:
int m_a;
};


class B
{
public:
B(int b) :m_b(b){
cout << m_b << endl;
}
    void show(){ cout << "B running " << endl; }
void show2(){ cout << "B running " << endl; }
private:
int m_b;
};


class C :public A, public B
{
public :
C(int c_1, int c_2,int c_3) :A(c_1), B(c_2),m_c(c_3){
cout << m_c << endl;
}
void show(){ cout << "A running " << endl; }
void show3(){ cout << "C running " << endl; }
private :
int m_c;
};


int main()
{
C c(1,2,3);
c.show();             //如果基类和派生类中都声明了show函数,则调用第一个基类(声明顺序)中的函数,若派生类中没有定义show函数,则产生错误,二义性
c.show1();
c.show2();
c.show3();


return 0;
}
原创粉丝点击