对静态变量c ++的未定义引用 [英] Undefined reference to static variable c++

查看:168
本文介绍了对静态变量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?

推荐答案


我不想要 static foo() function

I don't want a static foo() function

好, 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 ++的未定义引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆