可以在类中使用extern变量吗?

时间:2016-10-12 00:27:00

标签: c++ c++11 extern

在C ++中,是否可以将类成员变量标记为extern?

我可以

吗?
class Foo {
    public:
        extern string A;
};

其中字符串A是在我包含的另一个头文件中定义的?

1 个答案:

答案 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::fieldobject.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

live demo