C++實(shí)現(xiàn)的多重繼承功能簡(jiǎ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)建立派生類對(duì)象時(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
希望本文所述對(duì)大家C++程序設(shè)計(jì)有所幫助。
相關(guān)文章
C++使用ZLIB庫實(shí)現(xiàn)目錄壓縮與解壓功能
在軟件開發(fā)和數(shù)據(jù)處理中,對(duì)數(shù)據(jù)進(jìn)行高效的壓縮和解壓縮是一項(xiàng)重要的任務(wù),這不僅有助于減小數(shù)據(jù)在網(wǎng)絡(luò)傳輸和存儲(chǔ)中的占用空間,還能提高系統(tǒng)的性能和響應(yīng)速度,本文將介紹如何使用 zlib 庫進(jìn)行數(shù)據(jù)的壓縮和解壓縮,以及如何保存和讀取壓縮后的文件2025-02-02
C++實(shí)現(xiàn)旋轉(zhuǎn)數(shù)組的二分查找
這篇文章主要介紹了C++實(shí)現(xiàn)旋轉(zhuǎn)數(shù)組的二分查找方法,涉及數(shù)組的操作,有值得借鑒的技巧,需要的朋友可以參考下2014-09-09
C語言中的強(qiáng)符號(hào)和弱符號(hào)介紹
這篇文章主要介紹了C語言中的強(qiáng)符號(hào)和弱符號(hào)介紹,本文用多個(gè)實(shí)例來講解強(qiáng)符號(hào)和弱符號(hào),需要的朋友可以參考下2015-03-03
解析sizeof, strlen, 指針以及數(shù)組作為函數(shù)參數(shù)的應(yīng)用
本篇文章是對(duì)sizeof, strlen, 指針以及數(shù)組作為函數(shù)參數(shù)的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C語言中你不知道的隱式類型轉(zhuǎn)換規(guī)則詳解
在C語言中,類型轉(zhuǎn)換的方式一般可分為隱式類型轉(zhuǎn)換和顯示類型轉(zhuǎn)換(也稱為強(qiáng)制類型轉(zhuǎn)換),其中隱式類型轉(zhuǎn)換由編譯器自動(dòng)進(jìn)行,不需要程序員干預(yù),本文給大家詳細(xì)介紹了C語言中隱式類型轉(zhuǎn)換規(guī)則,需要的朋友可以參考下2024-01-01

