#include <iostream>
using namespace std;
class Shape
{
public:
virtual void draw()=0;
};
class Circle:public Shape
{
public:
void draw(){cout<<"circle "<<endl;}
};
class Rectangle:public Shape
{
public:
void draw(){cout<<"Rectangle "<<endl;}
};
我想創建一個圖片類,我可以繪製不同的形狀。我傳遞Shape類指針(摘要)中的圖片類的構造函數那樣:編譯錯誤:將抽象類作爲參數傳遞給類構造函數
class Picture
{
public:
Shape* s1;
Picture(Shape *fp): s1(new Shape){}
void PictureDrawn()
{
s1->draw();
}
};
int main()
{
Circle cir;
Picture pic(cir);
pic.PictureDrawn();
}
我收到編譯錯誤。請任何人解釋如何正確地寫圖片類的構造函數,以便我可以做出不同的形狀?由於
謝謝@Nrdtron。有用!! – Alok
接受他的答案然後:) –
@Alok是的,如果答案是正確的,你應該接受它 - 點擊複選標記。然後有人問到後來可以立即看到有一個可以接受的答案,這也可以幫助他們。 – Nerdtron