那里出错了呢?

harderror 2012-08-12 08:19:51

#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;
}
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
harderror 2012-08-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

2个main函数
[/Quote]

呵呵,新手!!
startservice 2012-08-12
  • 打赏
  • 举报
回复
2个main函数;
另外发现即使去掉一个main函数,在VC6.0下还是会报错,友元问题。
IVERS0N 2012-08-12
  • 打赏
  • 举报
回复
2个main函数
漫步者、 2012-08-12
  • 打赏
  • 举报
回复


#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函数,你要去掉一个。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧