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 所以就會報錯 沒有適合...