在C中,是否可以将类成员变量标记为extern?
我能有……吗
class Foo {
public:
extern string A;
};
字符串A是在我包含的另一个头文件中定义的?
最佳答案 如果我理解你的问题和评论,你正在寻找
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