我正在使用cpp文件来初始化一些数据
// foo.cpp
#include "foo.h"
int val = 5;
&安培;使用标题与项目中的其他文件共享。
// foo.h
extern int val;
inline int get() {
return val;
}
但我不希望变量 val 可以在项目的其他文件中访问。我想通过 get()函数访问该值。有没有办法实现这个目标?
我尝试了另一种方法......
// foo.h
class foo {
private:
static int val;
public:
static int get() {
return val;
}
static void set();
}
&安培; ...
// foo.cpp
void foo::set() {
val = 5;
}
但它也不起作用。获取链接器错误:未解析的外部符号“private:static int foo :: val”。
答案 0 :(得分:3)
在foo.cpp中添加: -
int foo::val;
答案 1 :(得分:1)
放入.cpp文件
int foo:val = 5;
给它所需的空间。
答案 2 :(得分:1)
您需要类成员还是自由变量?如果你想要自由变量,只需从头文件中删除变量声明,删除get()
的定义(保留声明)并在.cpp文件中实现get()
。