一段时间以来,我一直在尝试学习 C++。最近我遇到了以下一段代码:
#include <iostream>
using namespace std;
class Point {
private:
double x_, y_;
public:
Point(double x, double y){
x_ = x;
y_ = y;
}
Point() {
x_ = 0.0;
y_ = 0.0;
}
double getX(){
return x_;
}
double getY(){
return y_;
}
void setX(double x){
x_ = x;
}
void setY(double y){
y_ = y;
}
void add(Point p){
x_ += p.x_;
y_ += p.y_;
}
void sub(Point p){
x_ -= p.x_;
y_ -= p.y_;
}
void mul(double a){
x_ *= a;
y_ *= a;
}
void dump(){
cout << "(" << x_ << ", " << y_ << ")" << endl;
}
};
int main(){
Point p(3, 1);
Point p1(10, 5);
p.add(p1);
p.dump();
p.sub(p1);
p.dump();
return 0;
}
对于我的一生,我无法弄清楚为什么要使用这些方法void add(Point P)
和void sub( Point p )
工作。
"cannot access private properties of class Point"
当我尝试使用add
or时,我不应该得到类似的错误sub
吗?
gcc
使用版本编译的程序4.6.3
(Ubuntu/Linaro 4.6.3-1ubuntu5)
。运行时输出:
(13, 6)
(3, 1)