亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,請問在C++中,純虛函數是干什么用的?有什么含義

您好,請問在C++中,純虛函數是干什么用的?有什么含義

嚕嚕噠 2021-11-05 11:07:16
C++,純虛函數是干什么用的
查看完整描述

3 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

基類定義純虛函數后。子類必須完善函數體才可以定義對象。如果不對此純虛函數完善。依舊無法定義對象。也就是說對子類也有限制作用。有利于接口一致。

查看完整回答
反對 回復 2021-11-09
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

純虛函數是為了聲明一個虛擬基類而用的,在C++中,虛擬基類(也叫抽象類)是為了定義公共界面用了,說白了虛擬基類就是為了派生用的,讓派生類遵守基類定義的操作,還有虛擬基類沒有對象,就是沒有變量。

查看完整回答
反對 回復 2021-11-09
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

C++中的虛函數和純虛函數用法 1. 虛函數和純虛函數可以定義在同一個類(class)中,含有純虛函數的類被稱為抽象類(abstract class),而只含有虛函數的類(class)不能被稱為抽象類(abstract class)。 2. 虛函數可以被直接使用,也可以被子類(sub class)重載以后以多態的形式調用,而純虛函數必須在子類(sub class)中實現該函數才可以使用,因為純虛函數在基類(base class) 只有聲明而沒有定義。 3. 虛函數和純虛函數都可以在子類(sub class)中被重載,以多態的形式被調用。 4. 虛函數和純虛函數通常存在于抽象基類(abstract base class -ABC)之中,被繼承的子類重載,目的是提供一個統一的接口。 5. 虛函數的定義形式:virtual {method body} 純虛函數的定義形式:virtual { } = 0; 在虛函數和純虛函數的定義中不能有static標識符,原因很簡單,被static修飾的函數在編譯時候要求前期bind,然而虛函數卻是動態綁定(run-time bind),而且被兩者修飾的函數生命周期(life recycle)也不一樣。 6. 如果一個類中含有純虛函數,那么任何試圖對該類進行實例化的語句都將導致錯誤的產生,因為抽象基類(ABC)是不能被直接調用的。必須被子類繼承重載以后,根據要求調用其子類的方法。 以下為一個簡單的虛函數和純虛寒數的使用演示,目的是拋磚引玉! #include //father class class Virtualbase { public: virtual void Demon()= 0; //prue virtual function virtual void Base() {cout<<"this is farther class"<}; //sub class class SubVirtual :public Virtualbase { public: void Demon() { cout<<" this is SubVirtual!"< void Base() { cout<<"this is subclass Base"<}; /* instance class and sample */ void main() { Virtualbase* inst = new SubVirtual(); //multstate pointer inst->Demon(); inst->Base(); // inst = new Virtualbase(); // inst->Base() return ; } 


查看完整回答
反對 回復 2021-11-09
  • 3 回答
  • 0 關注
  • 257 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號