c 中抽象類繼承的程式設計問題,一個C 中關於繼承性和派生類的程式設計問題,求思路

2021-08-04 21:38:48 字數 1448 閱讀 2179

1樓:匿名使用者

#include

#define pi 3.1415926

class shape

~shape(){}

virtual void printshapename( )=0;

virtual void print( )=0;

virtual double getarea()=0;

virtual double getvolume( )=0;

};class point:public shape~point(){}

void printshapename( );

void print( ){}

double getarea() //新增double getvolume( ) //新增private:

double x,double y;

};class circle:public point~circle(){}

double getarea();

void printshapename( );

void print( ){}

private:

double radius;

};class cylinder:public circlevoid getcylinder(double a,double b)

void printshapename( );

void print( ){}

double getvolume();

private:

float radius,hight;

};double cylinder::getvolume()double circle::getarea()void point::

printshapename()void fun2(shape *p)

void fun3(shape *p)

void main()

你錯誤是因為你有兩個虛擬函式沒有實現。

抽象類中的虛擬函式在後面必須給出具體的實現,記住教訓啊

2樓:施小平

把類似這樣的語句

void printshapename( );

改為:virtual void printshapename( )

3樓:不ke愛

這個錯誤就是說 不能例項化point類..你宣告瞭純虛擬函式嘛,所以不能例項化

一個c++中關於繼承性和派生類的程式設計問題,求思路

4樓:

這個需要用到多型,也就是虛擬函式,父類vehicle有一個虛擬函式display,然後再子類中實現它就可以了,指標陣列應為父類指標型別

這個應該算是c++最基本的一種程式設計過程了,建議google虛擬函式來看看

c#中抽象類可以被繼承嗎?

C中抽象類和介面的區別,java中抽象類和介面的區別?

c 一 抽象類 抽象類是特殊的類,只是不能被例項化 除此以外,具有類的其他特性 重要的是抽象類可以包括抽象方法,這是普通類所不能的。抽象方法只能宣告於抽象類中,且不包含任何實現,派生類必須覆蓋它們。另外,抽象類可以派生自一個抽象類,可以覆蓋基類的抽象方法也可以不覆蓋,如果不覆蓋,則其派生類必須覆蓋它...

c抽象類內是否要有方法的實現,C 抽象類可以有構造方法嗎,若是有如何實現及呼叫

定義抽象類和抽象方法 abstract 抽象類特點 1 不能初始化的類被叫做抽象類,它們只提供部分實現,但是另一個類可以繼承它並且能建立它們的例項 2 一個抽象類可以包含抽象和非抽象方法,當一個類繼承於抽象類,那麼這個派生類必須實現所有的的基類抽象方法 3 通過宣告派生類也為抽象,我們可以避免所有或...

c中,基類是抽象類(有純虛擬函式),在派生類(公有繼承)中,能不能呼叫初始化基類物件

能呼叫如果創bai建物件是b b 2,3 那du麼就會執行b int m,int n 0 這個zhi建構函式dao,進而顯式呼叫了基類a的構專造函式a int a 因屬為初始化列表裡寫明瞭a m 構造方式 假如沒有這個a m 語句,那麼就會呼叫a的預設建構函式,但a裡沒有寫a 所以就會報錯 沒有適合...