CORRECTION :
I edited two line from:
1) "class circle : public shape" to "class circle : public virtual shape"
2)"class square : public shape" to "class square : public virtual shape"
And yes , i am trying to have only one instance of Shape class for the shapes class , while defining the method draw differently inside Circle class and Square class
I am trying to do a simple inheritance program , but it gave me the following error:
*error C2250: 'shapes' : ambiguous inheritance of 'void shape::draw(void)'
*IntelliSense: override of virtual function "shape::draw" is ambiguous
-->this code resembles the solution of the diamond problem. I don't get why i see this error.
Here is the code:
#include<iostream>
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");
}