c 抽象類 純虛函式

2021-07-28 04:31:36 字數 1346 閱讀 2771

1、錄入下面程式,分析編譯錯誤資訊。

#include 

#include

#include

using

namespace

std;

class abstract

virtual

void f() = 0;

};int main()

分析:這個程式最大的問題就是abstract *p = new abstract;定義了乙個抽象類的物件,然後讓這個類的指標只想這個抽象類,顯然這是錯誤的,因為抽象類是不能定義乙個物件的,另外,p->f();這句指標指向乙個純虛函式,也是不對的,因為根本就沒有物件,無從談起呼叫函式。

2、基類shape類是乙個表示形狀的抽象類,area( )為求圖形面積的函式。請從shape類派生三角形類(********)、圓類(circles)、並給出具體的求面積函式。#include

class shape

;完整**:

3、定義乙個抽象類base,在該類中定義乙個純需函式virtual void abstractmethod() = 0;派生乙個基於base的派生類derived,在派生類derived的abstractmethod方法中輸出」derived::abstractmethod is called」,最後編寫主函式,其內容如下:

int main()

完整**

分析:這個實驗是讓我們能夠體會一下抽象類的使用,首先定義乙個base抽象類,後面定義了派生類,新建乙個派生類的物件讓基類的指標指向派生類,通過指標呼叫純虛函式,這算是就會呼叫派生類中函式。

抽象類 純虛函式

在程式中,有些時候我們的基類是不需要例項化的,比如有乙個基類哺乳動物,這個在程式實現的時候沒有必要把他例項化出來。而只是乙個種群的抽象描述,也 無法進行例項化。所以在c 我們可以建立一種叫做抽象資料型別的類。這個類 只是用來繼承的,單獨沒有例項化,沒有意義。其實這也是減少了程式設計師編寫 後除錯的除...

虛函式,純虛函式,抽象類

1 虛函式 include includeusing namespace std class animal 執行結果 2 純虛函式 抽象類 include includeusing namespace std class animal class mouse public animal void c...

抽象類 純虛函式 虛函式

抽象類是一種特殊的類,它是為了抽象和設計的目的為建立的,它處於繼承層次結構的較上層。1 抽象類的定義 稱帶有純虛函式的類為抽象類。2 抽象類的作用 抽象類的主要作用是將有關的操作作為結果介面組織在乙個繼承層次結構中,由它來為派生類提供乙個公共的根,也就是說抽象類是為派生類服務的。純虛函式作為基類中的...