在C ++中,是否可以将类成员变量标记为extern?
我可以
吗?class Foo {
public:
extern string A;
};
其中字符串A是在我包含的另一个头文件中定义的?
答案 0 :(得分:2)
如果我理解您的问题并正确评论,那么您正在寻找static data members
将字段声明为static
:
// with_static.hpp
struct with_static
{
static vector<string> static_vector;
};
仅在一个TU(±.cpp
文件)中定义它:
// with_static.cpp
vector<string> with_static::static_vector{"World"};
然后你可以使用它。请注意,您可以使用class::field
和object.field
表示法,它们都引用相同的对象:
with_static::static_vector.push_back("World");
with_static foo, bar;
foo.static_vector[0] = "Hello";
cout << bar.static_vector[0] << ", " << with_static::static_vector[1] << endl;
以上内容应打印Hello, World