1樓:匿名使用者
#include
using namespace std;
class shape
;void shape::createshape()class rectangle:virtual public shape
;rectangle::rectangle (float a,float b)
float rectangle::getarea()class circle:virtual public shape;circle::
circle(float r)float circle::getarea()int main()
c++問題問題,/*寫一個程式,定義抽象基類shape,由他派生出3個派生類:circle(圓形),rectangle(矩形 5
2樓:德克and德華
//錯誤略多。。看我的註釋
#include
using namespace std;
class shape
//面積還是返回浮點數比較合適
virtual void shapename() = 0;
};class circle:public shapecircle(int a,int b,int c)void shapename()
};class rectangle:public shaperectangle(int a,int b)void shapename()
};class ********:public shape********(int a,int b)void shapename()//為使其返回正確的浮點數,在運算時加一個1.0*
};void printarea(circle c,rectangle r,******** t)//這個函式僅僅是列印資訊,沒必要宣告一個類來將它包含進去,然後又再多繼承...只需要把它寫成一個普通的全域性函式即可
void main()
3樓:匿名使用者
當c==d時,執行default,然後沒有break,於是執行case『c』
4樓:匿名使用者
1.段錯誤一般是當你訪問了未申請的記憶體
或非法的記憶體時產生的。主要還是程式的記憶體管理有問題。2.
其實開啟檔案是將檔案指標讀到一個記憶體中,來進行操作。lz的這種情況,檔案路徑有問題,就會使程式中記憶體的讀入產生問題,產生斷錯誤。3.
建議lz上網搜尋關鍵字「c++記憶體管理」,再進一步深入這個問題。
5樓:匿名使用者
void printarea(shape & sh){cout << sh.area()<個就是考慮多型。
circle c(1,1,1);
rectangle r(1,1);
******** t(1,1);
printarea(c);
printarea(r);
printarea(t);
虛基類不能建立物件, 需積累指標可以?
6樓:
shape* gshape只是說宣告瞭一個shape性質的指標gshape,就像int *p宣告一個int性質的指標一樣,有什內麼不容可以?但gshape和p現在還都沒有什麼用處,因為它們還沒有指向!題中的**是宣告瞭一個虛基類指標,然後讓這個指標指向虛基類的派生類的物件(由new lineshape生成),是很自然的!
7樓:匿名使用者
樓主你好,這是c++程式的多型性,可以由父類指標來new子類,以此來呼叫子類的過載方法。
C 虛基類問題
首先.這個不叫虛基類 這只是一個普通繼承 基類裡面有一個虛擬函式 定義a p new c p是一個a型別的指標,但實際上p指向的是一個c型別 c型別也是a型別的一種,c繼承自a p show 的時候,因為a中的是 virtual show 即虛擬函式 所以會執行c的show 函式 這就是虛擬函式的一...
如何編寫程式,實現由定義抽象基類Shape(形狀)派生出
不曉得你顯示所有圖形的總面積的函式放在 const double pi 3.14 class shape class circle public shapedouble showarea class rectangle public shapedouble showarea class square...
C 中在基類裡宣告為const的純虛擬函式在派生類裡的同名函
必須,函式是否為const也是過載條件之一比如在一個類裡,存在重名函式 void print void print const 那麼是合法的過載 但是如果是 int print const int print 則不是合法過載 因此想要實體化circle類,必須實現一個形如double print c...