在类之外定义静态函数并访问静态值.h和.cc文件

define static function outside the class and access static value .h and .cc files

本文关键字:静态 文件 cc 访问 定义 静态函数      更新时间:2023-10-16
 //foo.h
 class Foo 
  {
    private:
      static int number;
    public: 
      static int bar();
  };
//foo.cc
#include "foo.h"
 int Foo::bar() 
 {
   return Foo::number;
 }

这是不工作。我想在类定义之外定义一个静态函数并访问一个静态值。

undefined reference to `Foo::number'

您刚刚声明了静态成员,您还需要定义它。将此添加到您的cpp文件中。

int Foo::number = 0;

这应该是一个很好的阅读:

定义和声明的区别是什么?

你必须定义Foo::number:

// foo.cc
...
int Foo::number(0);

您已经声明了Foo::number,您必须添加一个定义。在您的cpp文件中添加以下行

int Foo::number = 0;