在类外部定义静态函数并访问静态值 .h 和 .cc 文件
//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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您刚刚声明了静态成员,您也需要定义它。
将其添加到您的 cpp 文件中。
这应该是一本好书:
什么是定义和声明之间的区别?
You just declared the static member you need to define it too.
Add this in your cpp file.
This should be a good read:
what is the difference between a definition and a declaration?
你必须定义
Foo::number
:you have to define
Foo::number
:您已声明 Foo::number 您必须添加定义。在你的 cpp 文件中添加这一行
You have declared Foo::number you have to add a definition. In your cpp file Add this line