我被一遍又一遍地告知要将我的类变量保密,因为将它们公开将是糟糕的编码习惯,因此从第一天起我就一直在做这件事。当我将所有代码放在一页上时,我从来没有遇到任何问题,但现在当我尝试使用函数访问我的私有(private)变量时出现未定义的错误。
在我的类里面.h
class classs
{
public:
classs(void);
void setAge(int x);
int getAge();
private:
int age;
};
然后在我的 classs.cpp 中我有:
void setAge(int x)
{
age = x;
}
和
int getAge()
{
return age;
}
这里告诉我年龄是未定义的。当所有这些代码都在一个 .cpp (main.cpp) 中时,我从来没有遇到过任何问题。我的 classs.cpp 上也有#include classs.h
最佳答案
发生这种情况并不是因为您的 setAge
定义在不同的文件中,而是因为它现在位于 class classes {}
block 之外。编译器无法知道 setAge
是该类的成员,因此它在范围内没有该类的属性。
通过将您的函数声明为 classs::setAge
关于c++ - 为什么我不能在 C++ 中访问我的私有(private)变量以及 getter 和 setter 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234938/