博客專欄

EEPW首頁 > 博客 > C++中的virtual的含義作用

C++中的virtual的含義作用

發(fā)布人:電子禪石 時間:2025-04-15 來源:工程師 發(fā)布文章

virtual ReturnType Function_1(); //虛函數(shù)聲明

virtual ReturnType Function_2() = 0; //純虛函數(shù)聲明


Virtual是C++ 面向?qū)ο髾C制中很重要的一個關鍵字。

只要是學過C++的人都知道在類Base中加了Virtual關鍵字的函數(shù)就是虛擬函數(shù)

(例如函數(shù)print),于是在Base的派生類Derived中就可以通過重寫虛擬函數(shù)來實現(xiàn)對基類

虛擬函數(shù)的覆蓋。當基類Base的指針point指向派生類Derived的對象時,

對point的print函數(shù)的調(diào)用實際上是調(diào)用了Derived的print函數(shù)而不是Base的print函數(shù)。

這是面向?qū)ο笾械亩鄳B(tài)性的體現(xiàn)。


純虛函數(shù)

1, 當在基類中不能為虛函數(shù)給出一個有意義的實現(xiàn)時,可以將其聲明為純虛函數(shù),

其實現(xiàn)留待派生類完成。

2, 純虛函數(shù)的作用是為派生類提供一個一致的接口,它只是個函數(shù)的聲明而已,

它告訴編譯器,在這個類中的這個純虛函數(shù)是沒有函數(shù)定義的,該類不能創(chuàng)建對象

(即不能實例化),但可以聲明指針,該類的派生類負責給出這個虛函數(shù)的重載定義。


注意,面向?qū)ο蟪绦蛟O計的基本特征有:


1,封裝性:

封裝性是指將對象相關的信息和行為狀態(tài)捆綁成一個單元,即將對象封裝為一個具體的類。

封裝隱藏了對象的具體實現(xiàn),當要操縱

對象時,只需調(diào)用其中的方法,而不用管方法的具體實現(xiàn)。

2,繼承性:

一個類繼承另一個類,繼承者可以獲得被繼承類的所有方法和屬性,并且可以根據(jù)實際的需要

添加新的方法或者對被繼承類中的方法

進行覆寫,被繼承者稱為父類或者超類,繼承者稱為子類或?qū)С鲱?,繼承提高了程序代碼的可

重用性,Java中一個子類只能繼承一個

父類,Object類是所有類的最終父類。

3,多態(tài)性:

多態(tài)性是指不同的對象對同一事物而做出的相同行為,一個類A可以指向其自身類和其導出類,

一個接口可以指向其接口實現(xiàn)類,在方

法參數(shù)中,使用多態(tài)可以提高參數(shù)的靈活性。

————————————————


                        

原文鏈接:https://blog.csdn.net/zjuxsl/article/details/44136321


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



關鍵詞: c++

技術專區(qū)

關閉