更正:
我编辑了两行:
1)“ class 圈:公共形状”到“ class 圈子:公共虚拟形状”
2)“ class 广场:公共形状”到“ class 广场:公共虚拟形状”
是的,我试图为 shapes 类只有一个 Shape 类的实例,而在 Circle class和 Square 类中定义方法 draw 则不同
我试图做一个简单的继承程序,但它给了我以下错误:
*错误C2250:'shapes':'void shape::draw(void)'的模糊继承
IntelliSense:虚拟函数"shape::draw"的覆盖是不明确的
此代码类似于钻石问题的解决方案 . 我不明白为什么我看到这个错误 .
这是代码:
#include
using namespace std;
class shape
{
public:
shape()
{
cout << "shape created" << endl;
}
virtual void draw()=0;
};
class circle : public virtual shape
{
public:
circle()
{
cout << "circle created" << endl;
}
virtual void draw()
{
cout << "this is a circle" << endl;
}
};
class square : public virtual shape
{
public:
square()
{
cout << "square created" << endl;
}
virtual void draw()
{
cout << "this is a square" << endl;
}
};
class shapes : public circle, public square
{
public:
shapes()
{
cout << "shapes created" << endl;
}
};
void main()
{
shapes e;
cout << "-------------" << endl;
system("pause");
}