繼承和純虛函式

2022-05-07 05:45:07 字數 989 閱讀 3667

純虛函式指父類中的這個虛函式是完全空白的。普通的虛函式我們需要在子類中對其進行複寫。默寫情況下我們需要子類中的子函式完全提供屬於他自己的定義而與父類中的虛函式沒什麼聯絡。當父類中採用純虛函式時,不能夠直接使用他,必須使用子類中的繼承

#include#include

class

entity

;class player : public

entity

std::

string getname() override

};void printname(entity*e)

intmain()

如果在主函式中這樣寫會報錯,因為無法直接引用純虛函式,必須也只能呼叫它的子類

entity *e=new entity();

如果將類中繼承的子函式注釋掉,上述**也無法正常執行。

假設我們現在想要乙個函式,列印出類的名字,不管是父類還是子類都可以列印出來

#include#include

class

printable

;class a :public

printable

};class entity : public

printable

std::

string getclassname() override

};class player : public

entity

std::

string getname() override

std::

string getclassname() override

};void printname(entity*e)

void print(printable *e)

intmain()

注意:如果乙個類中只有繼承函式和純虛函式,那麼它將無法被例項化,無法被new

繼承和純虛函式

以不同進製 輸出整數,要求抽象乙個公共基類,然後派生出 這 個子類,輸出函式print 用純虛函式實現,分別建立 進製類各乙個物件。print.cpp 定義控制台應用程式的入口點。include stdafx.h include include using namespace std class c...

虛函式 純虛函式 虛繼承資料整理

感謝這些優秀的文章 虛函式與純虛函式 虛函式的實現1 虛函式的實現2 菱形繼承與虛繼承 首先從虛函式開始說起吧.虛函式是實現了多型機制,具體表現為父型別的指標指向其子類的例項.然後通過服淚指標嗲用實際子類中的成員函式.這種技術可以讓父類指標有多種形態.如果呼叫非虛函式,無論物件是什麼型別,都執行基類...

虛函式和純虛函式

除了繼承外,c 的另乙個優良特性是支援多型,即允許將派生類的物件當作基類的物件使用。如果a是基類,b和c是a的派生類,多態函式test的引數是a的指標。那麼test函式可以引用a b c的物件。示例程式如下 class a void test a a class b public a class c...