未定义的引用静态variablesc ++
嗨,我得到未定义的参考错误在下面的代码:
class Helloworld{ public: static int x; void foo(); }; void Helloworld::foo(){ Helloworld::x = 10; };  我不想要一个static foo()函数。 如何在一个类的非static方法中访问一个类的staticvariables? 
我不想要一个
staticfoo()函数
 那么, foo()在你的类中是不是静态的,你不需要为了访问你的类的staticvariables而使它成为static 。 
你需要做的只是为你的静态成员variables提供一个定义 :
 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; }; 
 代码是正确的,但不完整。  Helloworld类声明了它的静态数据成员x ,但没有定义该数据成员。 有些需要你的源代码 
 int Helloworld::x; 
或者,如果0不是合适的初始值,则添加一个初始化程序。