亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++深度探索虛函數(shù)覆蓋示例

 更新時(shí)間:2022年12月19日 12:49:10   作者:Huuaaaaa  
虛函數(shù)主要通過V-Table虛函數(shù)表來實(shí)現(xiàn),該表主要包含一個(gè)類的虛函數(shù)的地址表,可解決繼承、覆蓋的問題,下面這篇文章主要給大家介紹了如何通過一篇文章帶你掌握C++虛函數(shù)的來龍去脈,需要的朋友可以參考下

代碼描述:Person類為基類,且基類中定義了三個(gè)虛函數(shù)。ChinesePer 類為繼承于改基類的子類,且子類沒有進(jìn)行虛函數(shù)重寫 。

class Person
{
public:
	virtual void speak() {
		cout << "說人話" << endl;
	}
	virtual void eat() {
		cout << "吃飯" << endl;
	}
	virtual void sleep() {
		cout << "睡覺" << endl;
	}
};
class ChinesePer :public Person {
public:
};
int main() {
	Person per;		//基類對(duì)象
	ChinesePer chs;	//子類對(duì)象
}

此時(shí)看看兩個(gè)對(duì)象中的虛函數(shù)表:

可以看出:如果子類沒有重寫父類中的虛函數(shù),則會(huì)完全的把父類的虛函數(shù)繼承到自己的虛函數(shù)表里,且虛函數(shù)表中的函數(shù)順序嚴(yán)格按照父類中的虛函數(shù)定義的順序。

接下來子類對(duì)父類中的兩個(gè)函數(shù) speak() , eat() 進(jìn)行重寫:

class ChinesePer :public Person {
public:
	virtual void speak() {
		cout << "說中國話" << endl;
	}
	virtual void eat() {
		cout << "吃中國飯" << endl;
	}
};

單步走查看一下分布:

可以看出: 此處發(fā)生了函數(shù)的覆蓋,子類對(duì)于基類進(jìn)行重寫的虛函數(shù),會(huì)直接發(fā)生覆蓋,此時(shí)子類虛函數(shù)表里存放的是自己重寫的虛函數(shù)地址; 否則虛函數(shù)表里保存的還是父類中的虛函數(shù)。

總結(jié):

1. 子類會(huì)繼承基類中的所有虛函數(shù)(公有)。

2. 基類虛函數(shù)的順序決定了子類虛函數(shù)的順序(虛函數(shù)表里的順序)。

3. 子類若重寫了基類的某虛函數(shù),則會(huì)在自己的虛函數(shù)表中覆蓋對(duì)應(yīng)位置的虛函數(shù)。

到此這篇關(guān)于C++深度探索虛函數(shù)覆蓋示例的文章就介紹到這了,更多相關(guān)C++虛函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C/C++ assert()函數(shù)用法案例總結(jié)

    C/C++ assert()函數(shù)用法案例總結(jié)

    這篇文章主要介紹了C/C++ assert()函數(shù)用法案例總結(jié),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C語言文件操作函數(shù)freopen詳細(xì)解析

    C語言文件操作函數(shù)freopen詳細(xì)解析

    替換一個(gè)流,或者說重新分配文件指針,實(shí)現(xiàn)重定向。如果stream流已經(jīng)打開,則先關(guān)閉該流。如果該流已經(jīng)定向,則freopen將會(huì)清除該定向。此函數(shù)一般用于將一個(gè)指定的文件打開一個(gè)預(yù)定義的流:標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出或者標(biāo)準(zhǔn)出錯(cuò)
    2013-10-10
  • Qt中利用QTextBrowser控件設(shè)計(jì)日志窗口

    Qt中利用QTextBrowser控件設(shè)計(jì)日志窗口

    本文主要介紹了Qt中利用QTextBrowser控件設(shè)計(jì)日志窗口,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • C++中stack的pop()函數(shù)返回值解析

    C++中stack的pop()函數(shù)返回值解析

    這篇文章主要介紹了C++中stack的pop()函數(shù)返回值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • C++編寫生成不重復(fù)的隨機(jī)數(shù)代碼

    C++編寫生成不重復(fù)的隨機(jī)數(shù)代碼

    本文給大家匯總介紹了3種c++實(shí)現(xiàn)生成不重復(fù)的隨機(jī)數(shù)的函數(shù),十分的簡單實(shí)用,有需要的小伙伴可以參考下。
    2015-05-05
  • C語言中數(shù)組排序淺析

    C語言中數(shù)組排序淺析

    這篇文章主要為大家介紹了C語言算法練習(xí)中數(shù)組元素排序的四種類型,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下
    2022-12-12
  • C++中的命名空間詳細(xì)介紹

    C++中的命名空間詳細(xì)介紹

    大家好,本篇文章主要講的是C++中的命名空間詳細(xì)介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • C++之list容器模擬實(shí)現(xiàn)方式

    C++之list容器模擬實(shí)現(xiàn)方式

    這篇文章主要介紹了C++之list容器模擬實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C語言 module_init函數(shù)與initcall案例詳解

    C語言 module_init函數(shù)與initcall案例詳解

    這篇文章主要介紹了C語言 module_init函數(shù)與initcall案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++實(shí)現(xiàn)快捷店會(huì)員管理系統(tǒng)

    C++實(shí)現(xiàn)快捷店會(huì)員管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)快捷店會(huì)員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論