C++實(shí)現(xiàn)的多重繼承功能簡單示例
本文實(shí)例講述了C++實(shí)現(xiàn)的多重繼承功能。分享給大家供大家參考,具體如下:
多重繼承
1. 多重繼承即一個類繼承了多個基類的屬性。
2. 多重繼承下派生類的構(gòu)造函數(shù)必須同時負(fù)責(zé)所有基類構(gòu)造函數(shù)的調(diào)用,
3. 派生類構(gòu)造函數(shù)的參數(shù)個數(shù),必須滿足多個基類初始化的需要。
4. 在多重繼承下,當(dāng)建立派生類對象時,系統(tǒng)首先調(diào)用各個基類的構(gòu)造函數(shù),調(diào)用順序與定義派生類時指定的基類順序一致。
多重繼承范例:
#include <iostream>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
class A
{
private:
float fa;
public:
A(float a = 0)
{
fa = a;
}
float getdata()
{
return fa;
}
};
class B
{
private:
float fb;
public:
B(float b = 0)
{
fb = b;
}
float getdata()
{
return fb;
}
};
class C:public A,public B
{
public:
C(int a=0,int b=0):A(a),B(b)
{
}
int sum()
{
return A::getdata()+B::getdata();
}
};
int main(int argc, char** argv)
{
class C c1(12,23);
class A *a1;
a1 = &c1;//指向派生類的基類指針
//std::cout << c1.getdata() << std::endl; 此時有二義性的問題
std::cout << a1->getdata() << std::endl;
std::cout << c1.B::getdata() << std::endl;
std::cout << c1.A::getdata() << std::endl;
return 0;
}
輸出:
12
23
12
希望本文所述對大家C++程序設(shè)計(jì)有所幫助。
相關(guān)文章
講解C++的do while循環(huán)和循環(huán)語句的嵌套使用方法
這篇文章主要介紹了講解C++的do while循環(huán)和循環(huán)語句的嵌套使用方法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09
C語言實(shí)現(xiàn)小學(xué)生計(jì)算機(jī)輔助教學(xué)系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)小學(xué)生計(jì)算機(jī)輔助教學(xué)系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03
使用C語言實(shí)現(xiàn)內(nèi)存池的示例代碼
所謂內(nèi)存池,顧名思義和線程池的設(shè)計(jì)原理是一樣的,為了減少頻繁申請釋放內(nèi)存而帶來的資源消耗,減少釋放內(nèi)存后產(chǎn)生的內(nèi)存碎片,下面我們就來看看如何使用C語言實(shí)現(xiàn)內(nèi)存池吧2024-02-02
C++連接mysql數(shù)據(jù)庫的兩種方法小結(jié)
這篇文章主要介紹了C++連接mysql數(shù)據(jù)庫的兩種方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

