C++运行error,怎么解决呀

#include<iostream>
#include<cmath>
using namespace std;
class Point {
private:
double X, Y;
public :
Point(double xx = 0double yy = 0) {
= xx; Y = yy;
cout << "Point(" << X << "," << Y << ")" << endl;
}
Point(Point &p) {
= p.X; Y = p.Y;
cout << "Point is copied" << endl;
}
double Distance(Point &p);
};
double Point::Distance(Point &p) {
double dx, dy;
dx = X - p.X;
dy = Y - p.Y;
return sqrt(dx * dx + dy * dy);
}
Point f(double x, double y) {
Point p(x, y);
return p;
}
int main103() {
Point A(00);
Point &= f(34);
// f(3,4) error 非常量的初始值必须为左值
cout << "Distance is " << A.Distance(B) << endl;
system("pause");
return 0;
}



#笔试题目##C/C++#
全部评论
为什么B是引用呢,不应该加&的
点赞 回复 分享
发布于 2018-11-06 20:15
你试试再加个引用 用&&(我也没试过)
点赞 回复 分享
发布于 2018-11-06 21:00
这个不能写引用啊,这个是临时变量。。。。
点赞 回复 分享
发布于 2018-11-06 22:01
编译器不是说了么 非const的左值引用不能绑定到非左值
点赞 回复 分享
发布于 2018-11-06 22:15
f得到是一个纯右值,而B是非常量左值引用,只能绑定到非常量左值。参考https://blog.csdn.net/hyman_yx/article/details/52044632
点赞 回复 分享
发布于 2018-11-07 07:39
没有看书学吗,都写的什么骚操作
点赞 回复 分享
发布于 2018-11-07 08:40

相关推荐

喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务