有什么问题?请告诉我。 责备x,语法和许多其他。
#include <iostream>
using namespace std;
class point {
double x;
double y;
public:
point(x = 0.0, y = 0.0) : x(x), y(y) {}
double getx() { return x; }
double gety() { return y; }
void setx(double v) { x = v; }
void sety(double v) { y = v; }
// private:
};
ostream& operator<<(ostream& out, point& p) {
out << "( " << p.getx() << ", " << p.gety() << " )";
return out;
}
point operator+(point& p1, point& p2) {
point sum = {p1.x + p2.x, p1.y + p2.y};
return sum;
}
int main() {
// x = point() {x=y=1.2;};
}
我会非常感谢你的帮助,因为我无法理解错误的原因
答案 0 :(得分:4)
point(x=0.0, y = 0.0):x(x),y(y){}
x是什么类型的?您需要指定它,例如
point(double x=0.0, double y = 0.0):x(x),y(y){}
看看你的编译器错误,它们存在是有原因的
编辑:我猜测你的下一个错误会更具创伤性,所以我在这里解释一下:你还试图访问运营商+免费功能中的私人内容:
point operator+ (point &p1, point &p2){
point sum = {p1.x + p2.x, p1.y + p2.y}; // x and y are private!
return sum;
}
自:
class point
{ // default here is "private:"
double x;
double y;
public:
// after this point everything will be public
修复要么是为了公开,要么使自由函数为friend。或者更好,正如Mike所说,使用你的公共界面。