c++程序缺少类型说明符
本程序很简单,可是老是有一些语法错误,请高手指点一下啊
[解决办法]
#include<iostream>#include<istream>#include<ostream>using namespace std;// 声明抽象基类 shapeclass shape{public: virtual float area() const {return 0.0;}//虚函数 virtual void shapename() const =0; //纯虚函数};//声明circle类class circle:public shape //circle是shape的公用派生类{public: circle():x(0),y(0),radius(0){}//////////////////// circle (float x,float y,float r); circle(float r):radius(r),x(0),y(0){} ///////////// void setradius(float); float setcircle(float,float); float getradius() const; virtual float area() const; virtual void shapename() const {cout<<"circle:";} friend ostream &operator<<(ostream &,const circle &); friend istream &operator>>(istream &,const circle &);protected: float radius; float x,y; //圆心 };//定义circle类成员函数circle::circle(float a,float b,float r):x(a),y(b),radius(r){};//void circle::setradius(float r):radius(r){};float circle::area() const{ return 3.14159*radius*radius;}ostream & operator<<(ostream &output,const circle &c){ output<<"["<<c.x<<","<<c.y<<"],r="<<c.radius<<",area="<<c.area()<<endl; return output;}istream &operator>>(istream &input,const circle &c){ cout<<"请输入圆的圆心和半径:"; input>>c.x>>c.y>>c.radius; return input;}//float circle::setcircle(float a,float b) const{cin>>a>>b>>radius;//return 0}class dimetric:public circle //正方形是circle类的公用派生类{public: explicit dimetric(float r=0);////////////////////////////不能够隐式调用,不然后面会有二意性 float setdimetric() const { cin>>radius; } float area() const; //计算正方形的面积 friend ostream& operator<<(ostream &, const dimetric &); //重载运算符"<<"//类名都写错了 friend istream& operator>>(istream &, const dimetric &); //重载运算符">>"};//////////////////少了个分号//定义dimetric类成员函数dimetric::dimetric(float r):circle(r){}//////////////不可以这样赋值//重载运算符">>","<<"float dimetric::area() const{ return radius*radius;}ostream &operator<<(ostream &output,const dimetric &cz){ output<<"radius="<<cz.radius<<","<<"area="<<cz.area()<<endl; return output;}istream &operator>>(istream &input,const dimetric &cz){ cout<<"请输入正方形的边长:"; input>>"r=">>cz.radius; return input;}//定义主函数int main(){ cout<<"---------------------计算圆和正方形的面积----------------"; circle c1; cin>>c1; cout<<c1; dimetric c2; cin>>c2; cout<<c2; return 0;}