嗨,我在以下代码中收到未定义的参考错误:
class Helloworld{
public:
static int x;
void foo();
};
void Helloworld::foo(){
Helloworld::x = 10;
};
我不需要static
foo()
功能。如何static
在类的非static
方法中访问类的变量?
嗨,我在以下代码中收到未定义的参考错误:
class Helloworld{
public:
static int x;
void foo();
};
void Helloworld::foo(){
Helloworld::x = 10;
};
我不需要static
foo()
功能。如何static
在类的非static
方法中访问类的变量?
Answers:
我不要
static
foo()
功能
那么,foo()
是不是在你的类静态的,你就不会需要使它static
以访问static
类的变量。
您要做的只是为静态成员变量提供一个定义:
class Helloworld {
public:
static int x;
void foo();
};
int Helloworld::x = 0; // Or whatever is the most appropriate value
// for initializing x. Notice, that the
// initializer is not required: if absent,
// x will be zero-initialized.
void Helloworld::foo() {
Helloworld::x = 10;
};