请教大神们一个小问题

下一个雨天 2013-11-24 12:36:32
class Point
{
public:
Point(double a = 0.0,double b = 0.):x(a),y(b){}
double distance(Point &p1,Point &p2);
private:
double x;
double y;
};
double Point::distance(Point &p1,Point &p2)
{

return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
int main()
{
Point p1(4,5);
Point p2(1,1);
double d = distance(&p1,&p2);
cout<<"两点间的距离为"<<d<<endl;
return 0;
}
为什么输出的结果是-1,是哪里有问题,请各位指点
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee_鹿游原 2013-11-24
  • 打赏
  • 举报
回复


double d = p1.distance(p1,p2);
下一个雨天 2013-11-24
  • 打赏
  • 举报
回复
引用 1 楼 jerry_dqh 的回复:
double d = distance(&p1,&p2); //函数参数是引用,你这里取地址,肯定有问题啊

使用double d = distance(p1,p2);
这个试过了,那样的话会有错误,不行啊
碼上道 2013-11-24
  • 打赏
  • 举报
回复
double d = distance(&p1,&p2); //函数参数是引用,你这里取地址,肯定有问题啊

使用double d = distance(p1,p2);
下一个雨天 2013-11-24
  • 打赏
  • 举报
回复
引用 5 楼 dyw 的回复:
[quote=引用 4 楼 u012938458 的回复:] [quote=引用 3 楼 lile1234_show 的回复:]


double d = p1.distance(p1,p2);
擦,居然忘了取对象,谢谢二位,结合二位的就对了[/quote] 这个函数用的是不是有点不舒服?如果能这样调用 double d = p1.distance(p2); 是不是更舒服些? [/quote]嗯嗯,你说的有道理,我以后自己编程序会按着简单舒服的方式编写,我这个是老师给出了函数的形式,就只好那么调用了
dyw 2013-11-24
  • 打赏
  • 举报
回复
引用 4 楼 u012938458 的回复:
[quote=引用 3 楼 lile1234_show 的回复:]


double d = p1.distance(p1,p2);
擦,居然忘了取对象,谢谢二位,结合二位的就对了[/quote] 这个函数用的是不是有点不舒服?如果能这样调用 double d = p1.distance(p2); 是不是更舒服些?
下一个雨天 2013-11-24
  • 打赏
  • 举报
回复
引用 3 楼 lile1234_show 的回复:


double d = p1.distance(p1,p2);
擦,居然忘了取对象,谢谢二位,结合二位的就对了

64,654

社区成员

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

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