C++實(shí)現(xiàn)的多重繼承功能簡單示例
本文實(shí)例講述了C++實(shí)現(xiàn)的多重繼承功能。分享給大家供大家參考,具體如下:
多重繼承
1. 多重繼承即一個(gè)類繼承了多個(gè)基類的屬性。
2. 多重繼承下派生類的構(gòu)造函數(shù)必須同時(shí)負(fù)責(zé)所有基類構(gòu)造函數(shù)的調(diào)用,
3. 派生類構(gòu)造函數(shù)的參數(shù)個(gè)數(shù),必須滿足多個(gè)基類初始化的需要。
4. 在多重繼承下,當(dāng)建立派生類對象時(shí),系統(tǒng)首先調(diào)用各個(gè)基類的構(gòu)造函數(shù),調(diào)用順序與定義派生類時(shí)指定的基類順序一致。
多重繼承范例:
#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; 此時(shí)有二義性的問題
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)文章
VisualStudio2019配置OpenCV的詳細(xì)過程
這篇文章主要介紹了VisualStudio2019配置OpenCV,配置系統(tǒng)環(huán)境找到高級系統(tǒng)設(shè)置等一系列操作,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01
C語言詳解用char實(shí)現(xiàn)大小寫字母的轉(zhuǎn)換
這篇文章主要給大家介紹了關(guān)于C語言實(shí)現(xiàn)大小寫字母轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
C++生成隨機(jī)浮點(diǎn)數(shù)的示例代碼
在C++11之前,我們通常采用rand函數(shù)來生成隨機(jī)數(shù),但rand函數(shù)對一些情況顯得難以處理。本文將介紹如何利用C++生成隨機(jī)浮點(diǎn)數(shù),需要的可以參考一下2022-04-04
C語言實(shí)現(xiàn)銀行管理系統(tǒng)(文件操作)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)銀行管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
VS未找到框架“.NETFramework,Version=v4.6.1”引用程序集的解決辦法
本文主要介紹了VS未找到框架“.NETFramework,Version=v4.6.1”引用程序集的解決辦法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10

