这里为什么会出现[Error] cannot convert 'cube*' to 'square*' in assignment的错误啊
#include <iostream>
using namespace std;
class shape
{
public:
virtual int area(int n){
return n*n;
}
int edge;
};
class square:public shape
{
public:
square(int n){
edge=n;
}
int area(){
return edge*edge;
}
private:
};
class cube :public shape
{
public:
cube(int n){
edge=n;
}
int area(){
return edge*edge*6;
}
int volume(){
return edge*edge*edge;
}
};
int main(){
shape* s;
square *s1;
int a,b;
cin>>a>>b;
square sq(a);//构造函数
s = &sq;
cout << sq.area() << endl;
cube cu(b);
s1 = &cu; //error出现在这里
cout << cu.area() << endl;
cout << cu.volume();
return 0;
}