c++多态虚函数,指针指代问题,需要使用指针指指代基类
#include<iostream>
#define Pi 3.14159
using namespace std;
class CShape{
protected:
double x,y;
public:
void set(double i,double j)
{
x=i;
y=j;
}
virtual double GetArea()=0;
};
class CTriangle:public CShape{
public:
double GetArea(){
return 0.5*x*y;
}
};
class CRectangle:public CShape{
public:
double GetArea(){
return x*y;
}
};
class CCircle: public CShape
{
private:
double radius;
public:
CCircle(double r):radius(r){ }
double GetArea() { return Pi*radius*radius;}
};
class CSquare: public CShape{
private:
double side;
public:
CSquare(double s):side(s){ }
double GetAre(){ return side*side;}
};
int main()
{
CShape *c;
CCircle i(6.6);
CRectangle r;
CSquare s(8);
c=&r;
c->set(6,6);
cout<<"CRectangle area:"<<c->GetArea()<<endl;
c=&i;
cout<<"CCircle area:"<<c->GetArea()<<endl;
c=&s;
cout<<"CSquare are:"<<c->GetArea()<<endl;
return 0;
}
报错显示:C:\Users\lenovo\Desktop\c++8\1.cpp In function 'int main()':
想要输出多个种类的面积,并实现面积和
44行的函数名错了GetAre 少了个a 必须要和13行的函数名一致
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!