哪位高人帮我看一下这个程序有什么错误!

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:47:11
#include<iostream.h>
const float PI=3.14;
class Shape
{public:
Shape(){};
~Shape(){};
virtual float GetArea()=0;
}
class Rectangle:public Shape
{public:
Rectangle(){};
float GetArea(){return x*y;};
private:
float x,y;
}
class Circle:public Shape
{public:
Circle(){};
float GetArea(){return PI*r*r;};
private:
float r;
}
float fun(Shape *ptr){cout<<ptr->GetArea();}
void main()
{Shape *p;
Rectangle r;
Circle c;
p=&r;fun(p);
p=&c;fun(p);
}

基本上没什么大的问题,小的问题有两处,一是在类的定义后面要有";",比如:
class Shape
{public:
Shape(){};
~Shape(){};
virtual float GetArea()=0;
} ;

还有一个是fun函数没有返回值
要嘛写成
void fun(Shape *ptr){cout<<ptr->GetArea();}
要嘛把返回值加上

太复杂,实际做程序没有必要搞这么复杂.这是用来学语法的.不是用来开发程序的