C++ 抽象基類

C++ 抽象基類

——不能創(chuàng)建對象,只能派生出新類的類是抽象基類ABC(作為模板)。

純虛函數(shù)。

  包含純虛函數(shù)的類是抽象基類。


? 純虛函數(shù)

??純虛函數(shù)聲明:虛函數(shù)的結(jié)尾處加上=0。

? C++通過使用純虛函數(shù)提供未實(shí)現(xiàn)的函數(shù),但仍可以在實(shí)現(xiàn)文件中提供方法的定義。

classBaseEllipse// abstract base class{private:

? ? ....public:

? ? ...

? ? virtualdoubleArea()const=0;// a pure virtual function? ? ...

}

? 給出方法定義:

voidBaseEllipse::Move(intnx, ny) { x = nx; y= ny; }


? 抽象基類ABC

? 在原型中使用=0(即至少聲明一個純虛成員函數(shù))指出類是一個抽象基類,在類中不可以定義該函數(shù)。


? 類聲明中包含純虛函數(shù)時,不能創(chuàng)建該類的對象。

? 使用抽象基類派生出的類被稱為具體類,這表示可以創(chuàng)建這些類型的對象。


? ABC理念

? ABC要求具體派生類覆蓋其純虛函數(shù)(實(shí)現(xiàn))——迫使派生類遵循ABC設(shè)置的接口規(guī)則。


-----

原文鏈接:https://www.cnblogs.com/suui90/p/13183002.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容