c++ - 如何修复 "undefined reference"编译器错误

标签 c++ oop

在以下代码中找到错误:

class A
{
   public:
    static int i;
    void print()
    {
      cout<< i << endl ;
    }
 };

 int main()
 {
    A a;
    a.print();
  }

我运行上面的代码,我得到了 "undefined reference to `A::i'" 。为什么会出现此错误?

最佳答案

由于 A::i 是一个 static 成员,它必须是 defined outside of the class :

using namespace std;

class A
{
public:
    static int i;  // A::i is declared here.

    void print()
    {
        cout << i << endl;
    }
};

int A::i = 42;     // A::i is defined here.

关于c++ - 如何修复 "undefined reference"编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4544497/

相关文章:

php - PHP 中的 PDO 过于复杂?

node.js - 使用 OOP 扩展 Node.js 模块

c++ - 使用 std::enable_if 时如何拆分声明和实现

c++ - std::function 中的冗余构造函数重载?

c++ - 为什么我不能像这样初始化结构?

java - Java 类中的无限组合?

Python错误:No constructor defined in SWIG generated module of C++ templated code

c++ - 问题从 C++ 中的二进制文件读取对象

oop - 接口(interface)的功能主要是为了使用函数而不知道类是如何构建的吗?

java - Python 多态 VS JAVA 多态