C++的繼承和派生你了解嗎
更新時(shí)間:2022年03月11日 10:04:50 作者:qq_24409999
這篇文章主要為大家詳細(xì)介紹了C++繼承和派生,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
繼承的寫法
//父類 基類
class parent
{
};
//子類 派生類
//公有繼承
class soon1:public parent
{
public:
protected:
};
//保護(hù)繼承
class son2:protected parent
{
public:
protected:
};
//私有繼承
class son3:private parent
{
public:
protected:
};
//繼承和派生
//繼承:子類中沒有產(chǎn)生新的屬性和行為
//派生:派生類中有新的屬性和行為產(chǎn)生
class 子類名:繼承方式 父類名
{
};
//繼承方式 就是權(quán)限限定詞
繼承實(shí)質(zhì)與權(quán)限問題 ?
- 繼承的實(shí)質(zhì):父類的數(shù)據(jù)和成員子類中有一份?
- 權(quán)限問題:繼承方式只會(huì)增強(qiáng)父類屬性在子類中的權(quán)限顯示
| public | protected | private | |
|---|---|---|---|
| public繼承 | public | protected | 不可直接訪問 |
| protected繼承 | protected | protected | 不可直接訪問 |
| private繼承 | private | protected | 不可直接訪問 |
#include<iostream>
#include<string>
using namespace std;
class parent
{
public:
void print()
{
cout << name << "\t" << money << endl;
}
string& getWide()
{
return wide;
}
protected:
string name;
int money;
private:
string wife;
};
//子類
class son :public parent
{
public:
void printSon()
{
print();
cout << name<<"\t"<<money<< endl;
//cout << wife << endl;父類中的私有屬性不能直接訪問
cout << getWide() <<endl;//間接通過父類的函數(shù)訪問
}
protected:
};
class A
{
public:
int a1;
protected:
int a2;
private:
int a3;
};
class B :public A
{
public:
//int a1;
protected:
//int a2;
private:
//int a3;不能直接訪問
};
class C :protected A
{
public:
protected:
//int a1; public 顯示protected
//int a2;
private:
//int a3;不能直接訪問
};
class D :private A
{
public:
void print()
{
cout << a1 << endl;;
cout << a2<< endl;
}
protected:
private:
//int a1; public 顯示protected
//int a2;
//int a3;//父類的私有屬性不能直接訪問
};
//私有繼承會(huì)導(dǎo)致當(dāng)前父類 無法在孫子類有任何作用
class F :public D
{
public:
};
int main()
{
son boy;
boy.printSon();
B b;
b.a1 = 123;
C c;
//c.a1 = 12;
return 0;
}
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Qt編寫地圖之實(shí)現(xiàn)覆蓋物坐標(biāo)和搜索
地圖應(yīng)用中經(jīng)常會(huì)需要有覆蓋物坐標(biāo)和搜索的功能,本文將利用Qt實(shí)現(xiàn)這一功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-03-03
C++實(shí)現(xiàn)Dijkstra算法的示例代碼
迪杰斯特拉算法(Dijkstra)是由荷蘭計(jì)算機(jī)科學(xué)家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是從一個(gè)頂點(diǎn)到其余各頂點(diǎn)的最短路徑算法。本文將用C++實(shí)現(xiàn)Dijkstra算法,需要的可以參考一下2022-07-07
C++11中std::function與std::bind的用法實(shí)例
大家都知道C++11中增加了許多的新特性,下面這篇文章主要給大家介紹了關(guān)于C++11中std::function與std::bind的用法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
Clion下載安裝使用的詳細(xì)教程(Win+MinGW)
這篇文章主要介紹了Clion下載安裝使用教程(Win+MinGW),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08

