#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