对静态变量 c++ 的未定义引用

2022-01-05 00:00:00 static 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 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() 函数

好吧,foo() 在你的类中不是静态的,你不需要让它staticcode> 以访问您的类的 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.

您需要做的只是为您的静态成员变量提供一个定义:

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;
};

相关文章