问题遇到的现象和发生背景
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()':
我的解答思路和尝试过的方法
我想要达到的结果
想要输出多个种类的面积,并实现面积和