C ++:如何在类中声明一个空的私有静态向量?

C++: How to declare an empty private static vector inside a class?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Initializing private static members

这真的让我发疯了,我想声明一个类中的静态私有向量,这个类将用作共享内存。

我的向量声明如下:

1
private: static vector< pair< string, bool > > flags;

这是在类内部完成的,但如何将其初始化为空向量?最好是如果in it在类本身中,因为我需要在许多地方使用它。另一个选择是在main()中,但没有更多的选择。

我有使用向量的setflag()和getflag()方法,但是它给了我各种类型的链接器错误,因为只有声明,没有定义!


I have setFlag() and getFlag() methods that work with the vector, but
it gives me all kinds of linker errors, because there is only
declaration, no definition!

您需要在类实现文件(或其他源文件)中对其进行初始化:

1
vector< pair< string, bool > > MyClass::flags;


您必须在实现YourClass的文件中添加定义:

1
vector< pair< string, bool > > YourClass::flags;

这一行将调用默认的构造函数,它初始化一个空向量。