3

可能重复:
初始化私有静态成员

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

我的向量声明是这样的:

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

这是在一个类中完成的,但我怎样才能将它初始化为空向量?最好的办法是 init 在类本身中,因为我需要在很多地方使用它。另一种选择是,main()但仅此而已。

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

4

2 回答 2

6

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

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

vector< pair< string, bool > > MyClass::flags;
于 2012-11-11T17:43:15.497 回答
2

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

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

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

于 2012-11-11T17:43:05.653 回答