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

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

这篇关于对静态变量 c++ 的未定义引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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