我有以下代码:
class Point{
private:
double x, y;
public:
Point(){
this->x = 0;
this->y = 0;
}
//...
};
我在 double x 和 y 的私有(private)声明中遇到错误:
'double Point::y' is private
当我将代码重新排列为:
class Point{
//private:
public:
double x, y;
//public:
Point(){
this->x = 0;
this->y = 0;
}
//...
};
但显然 double 不是私有(private)的。如果没有给出 private 关键字并且 double 在 public 关键字之前声明,我会得到相同的私有(private)变量错误。
我做错了什么/如何正确声明私有(private)变量? 谢谢!
我在类(class)和 double 声明中的 eclipse 中都有错误制造者:(我在代码中放置了一个 X,因为我无法发布屏幕截图)
class Point{
private:
//public:
X double x, y;
X Point(): x{0},y{0}{
}
已解决:感谢 Dieter Lücking 指出,在我的示例中,我在提供完整代码示例时忘记取消注释 public 关键字。在我编写的代码中更进一步:
cout << "\nPoint sum: " << e.x + e.getY();
奇怪的是,这导致错误同时出现在 cout 行和声明行上,这就是造成我困惑的原因。修复 cout 行:
cout << "\nPoint sum: " << e.x + e.getY();
解决了所有的错误。谢谢大家!
最佳答案
要注意的最重要的事情是,在您的 main
函数中,您尝试直接访问 x
和 y
而不是使用访问器函数getX()
和 getY()
。
另一件事是(可能由于最近的编辑)您在 Point
中的所有成员函数都是 private
。直接在 c'tor 之前取消注释 //public:
行。
关于c++ - 私有(private)变量编译错误: Variable is Private,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22615160/