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

发布于 2024-12-12 03:20:12 字数 306 浏览 0 评论 0原文

 //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'
 //foo.h
 class Foo 
  {
    private:
      static int number;

    public: 
      static int bar();
  };

//foo.cc
#include "foo.h"

 int Foo::bar() 
 {
   return Foo::number;
 }

this is not working. I want to define a static function outside the class definition and access a static value.

undefined reference to `Foo::number'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

月依秋水 2024-12-19 03:20:13

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

int Foo::number = 0;

这应该是一本好书:

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

You just declared the static member you need to define it too.
Add this in your cpp file.

int Foo::number = 0;

This should be a good read:

what is the difference between a definition and a declaration?

原野 2024-12-19 03:20:13

你必须定义Foo::number

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

you have to define Foo::number:

// foo.cc
...
int Foo::number(0);
叫思念不要吵 2024-12-19 03:20:13

您已声明 Foo::number 您必须添加定义。在你的 cpp 文件中添加这一行

int Foo::number = 0;  

You have declared Foo::number you have to add a definition. In your cpp file Add this line

int Foo::number = 0;  
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文