请问这个为什么老是赋值不过去?出错!!!谢谢

visons 2009-01-05 03:00:02

#include<iostream>
#include<cmath>
using namespace std;
class Point{
protected:
double x,y;
public:
static double PI;
public:
Point(double a=0,double b=0);
double xOffset()const;
double yOffset()const;
double angle()const;
double radius()const;
Point operator+(const Point & d)const;
Point & operator+=(const Point & d);
void moveTo(double a,double b);
void display();


};
Point::Point(double a,double b):x(a),y(b){}
double Point::PI=3.14159265;

double Point::xOffset()const{return x;}
double Point::yOffset()const{return y;}
double Point::angle()const{return (180/PI)*atan2(y,x);}
double Point::radius()const{return sqrt(x*x+y*y);}
void Point::moveTo(double a,double b){x=a,y=b;}
void Point::display(){
cout<<x;}
class Circle :public Point{
double radius;
public:
Circle(const Point&p=Point(),double r=0);
double getRadius()const;
Point getPoint()const;
double getCircum()const;
void moveTo(double a,double b);
void modifyRadius(double r);
};
Circle::Circle(const Point&p,double r):Point(p),radius(r){}
double Circle::getRadius()const{return radius;}
Point Circle::getPoint()const{return static_cast<const Point>(*this);}

double Circle::getCircum()const{return 2*radius*Point::PI;}
void Circle::moveTo(double a,double b){x=a,y=b;}
void Circle::modifyRadius(double r){radius=r;}
int main(){
Point a(2.3,5.6);
Circle c(a,7);
c.moveTo(1,2);
c.modifyRadius(3);
cout<<"the radius is"<<c.getRadius()<<"\n";
cout<<c.getPoint();

cout<<c.getCircum()<<"\n";
}
...全文
152 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bulltre 2009-01-06
  • 打赏
  • 举报
回复
error C2679: binary ' < <' : no operator defined which takes a right-hand operand of type 'class Point' (or there is no acceptable conversion)
错误已经很明显了,不要再发O贴了.
visons 2009-01-05
  • 打赏
  • 举报
回复
谢谢~~
onion923 2009-01-05
  • 打赏
  • 举报
回复
class Point{ 
protected:
double x,y;
public:
static double PI;
public:
Point(double a=0,double b=0);
double xOffset()const;
double yOffset()const;
double angle()const;
double radius()const;
Point operator+(const Point & d)const;
Point & operator+=(const Point & d);
void moveTo(double a,double b);
void display();
friend ostream &operator<<(ostream &os,const Point &p)
{
os<<p.x<<" "<<p.y<<endl;
return os;
}


};
Point::Point(double a,double b):x(a),y(b){}
double Point::PI=3.14159265;

double Point::xOffset()const{return x;}
double Point::yOffset()const{return y;}
double Point::angle()const{return (180/PI)*atan2(y,x);}
double Point::radius()const{return sqrt(x*x+y*y);}
void Point::moveTo(double a,double b){x=a,y=b;}
void Point::display(){
cout <<x;}
class Circle :public Point{
double radius;
public:
Circle(const Point&p=Point(),double r=0);
double getRadius()const;
Point getPoint()const;
double getCircum()const;
void moveTo(double a,double b);
void modifyRadius(double r);
};
Circle::Circle(const Point&p,double r):Point(p),radius(r){}
double Circle::getRadius()const{return radius;}
Point Circle::getPoint()const{return static_cast <const Point>(*this);}

double Circle::getCircum()const{return 2*radius*Point::PI;}
void Circle::moveTo(double a,double b){x=a,y=b;}
void Circle::modifyRadius(double r){radius=r;}
void main(){
Point a(2.3,5.6);
Circle c(a,7);
c.moveTo(1,2);
c.modifyRadius(3);
cout <<"the radius is" <<c.getRadius() <<"\n";
cout <<c.getPoint();

cout <<c.getCircum() <<"\n";
}

关注黑体字
davelv 2009-01-05
  • 打赏
  • 举报
回复
上面看错了...
错误提示的意思是<<没有定义关于你那个类的操作....
davelv 2009-01-05
  • 打赏
  • 举报
回复
貌似<<中间多了个空格...从网上copy的吧..
visons 2009-01-05
  • 打赏
  • 举报
回复
那个好像不关事的吧!!
jiangheng2008 2009-01-05
  • 打赏
  • 举报
回复
Point operator+(const Point & d)const;
Point & operator+=(const Point & d);
函数体在哪?
顺便说一句,BS蛋帖。
visons 2009-01-05
  • 打赏
  • 举报
回复
error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class Point' (or there is no acceptable conversion)

65,211

社区成员

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

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