这样的事情:
class someclass
{
public:
someclass();
~someclass();
long Set(int x, int y);
private:
int _x;
int _y;
};
long Set(int x, int y)
{
_x = x;
_y = y;
}
但是如果你只是写这样的东西,则无法在Set()函数中识别_x。那么如何使用自己的方法设置类的私有属性呢?非常感谢。
答案 0 :(得分:6)
你有一个范围问题。这应该有效:
long someclass::Set(int x, int y)
{
_x = x;
_y = y;
}
答案 1 :(得分:4)
在类定义之外定义成员函数时,必须适当地调整其范围:
long someClass::Set(int x, int y)
{
_x = x;
_y = y;
}
您所写的内容定义了一个不相关的全局函数Set
。
此外,Set
的返回类型可能应为void
(或者您必须从中返回一些内容)。
答案 2 :(得分:3)
你有什么实际的错字。您已声明了一个成员函数:
class someclass
{
public:
long Set(int x, int y);
...但实现了完全不同的,免费功能:
long Set(int x, int y)
{
_x = x;
_y = y;
}
将后者改为:
long someclass:Set(int x, int y)
{
_x = x;
_y = y;
}