首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

那边出错了呢

2012-09-02 
那里出错了呢?C/C++ code#include iostreamusing namespace stdclass Point{public:Point(float x0,fl

那里出错了呢?

C/C++ code
#include <iostream>using namespace std;class Point{public:        Point(float x=0,float y=0);        void setPoint(float,float);        float getX() const {return x;}        float getY() const {return y;}        friend ostream & operator<<(ostream &,const Point &);protected:          float x,y;          };Point::Point(float a,float b)          {x=a;y=b;}void Point::setPoint(float a,float b)          {x=a;y=b;}ostream & operator<<(ostream &output,const Point &p)          {output<<"["<<p.x<<","<<p.y<<"]"<<endl;          return output;}          int main(){Point p(3.5,6.4);cout<<"x="<<p.getX()<<",y="<<p.getY()<<endl;p.setPoint(8.5,6.8);cout<<"p(new):"<<p<<endl;system("pause");} class Circle:public Point{public:        Circle(float x=0,float y=0,float r=0);        void setRadius(float);        float getRadius() const;        float area() const;        friend ostream &operator<<(ostream &,const Circle &);private:        float radius;      };Circle::Circle(float a,float b,float r):Point(a,b),radius(r)      {}void Circle::setRadius(float r)      {radius=r;}float getRadius() const {return radius;}float area() const      {return 3.1415926*radius*radius;}ostream &operator<<(ostream &output,const Circle &c)      {output<<"Center=["<<c.x<<","<<c.y<<"],r="<<c.radius<<".area="<<c.area()<<endl;      return output;      }int main(){Circle c(3.5,6.4,5.2);cout<<"original circle:\\nx="<<c.getX()<<",y="<<c.getY()<<",r="<<c.getRadius()<<",area="<<c.area()<<endl;c.setRadius(7.5);c.setPoint(5,5);cout<<"new circle:\\n"<<c;Point &pRef=c;cout<<"pRef:"<<pRef;return 0;}


[解决办法]
C/C++ code
#include <iostream>using namespace std;class Point{public:        Point(float x=0,float y=0);        void setPoint(float,float);        float getX() const {return x;}        float getY() const {return y;}        friend ostream & operator<<(ostream &,const Point &);protected:          float x,y;          };Point::Point(float a,float b)//最好与定义类的参数一致          {x=a;y=b;}void Point::setPoint(float a,float b)          {x=a;y=b;}ostream & operator<<(ostream &output,const Point &p)          {output<<"["<<p.x<<","<<p.y<<"]"<<endl;          return output;}class Circle:public Point{public:        Circle(float x=0,float y=0,float r=0);        void setRadius(float);        float getRadius() const;        float area() const;        friend ostream &operator<<(ostream &,const Circle &);private:        float radius;};Circle::Circle(float a,float b,float r):Point(a,b),radius(r)      {}void Circle::setRadius(float r)      {          radius=r;}float Circle::getRadius() const //这里写掉了Circle::,它是成员函数{    return radius;}float Circle::area() const//同理      {return 3.1415926*radius*radius;}ostream &operator<<(ostream &output,const Circle &c)      {output<<"Center=["<<c.x<<","<<c.y<<"],r="<<c.radius<<".area="<<c.area()<<endl;      return output;    }int main(){Circle c(3.5,6.4,5.2);cout<<"original circle:\\nx="<<c.getX()<<",y="<<c.getY()<<",r="<<c.getRadius()<<",area="<<c.area()<<endl;c.setRadius(7.5);c.setPoint(5,5);cout<<"new circle:\\n"<<c;Point &pRef=c;cout<<"pRef:"<<pRef;return 0;}//还有一个地方是,你的程序中出现了2个main函数,你要去掉一个。 


[解决办法]
2个main函数
[解决办法]
2个main函数;
另外发现即使去掉一个main函数,在VC6.0下还是会报错,友元问题。

热点排行