本文介绍了对静态变量c ++的未定义引用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好,我在下面的代码中得到未定义的引用错误:
Hi i am getting undefined reference error in the following code:
class Helloworld{
public:
static int x;
void foo();
};
void Helloworld::foo(){
Helloworld::x = 10;
};
我不想要一个 static
code> foo()函数。如何在类的非 - static
方法中访问类的 static
变量?
I don't want a static
foo()
function. How can I access static
variable of a class in non-static
method of a class?
推荐答案
好, foo c $ c>是不是在您的类中静态,并且 需要使它
static
访问 static
您类的变量。
Well,
foo()
is not static in your class, and you do not need to make it static
in order to access static
variables of your class.
您需要做的只是提供一个 / em>为你的静态成员变量:
What you need to do is simply to provide a definition for your static member variable:
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;
};
这篇关于对静态变量c ++的未定义引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!