【问题标题】:C++: How to declare an empty private static vector inside a class? [duplicate]C++:如何在类中声明一个空的私有静态向量? [复制]
【发布时间】:2012-10-31 06:47:44
【问题描述】:

可能重复:
Initializing private static members

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

我的向量声明是这样的:

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

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

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

【问题讨论】:

  • 默认为空。

标签: c++ class static initialization


【解决方案1】:

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

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

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

【讨论】:

  • 完美!谢谢,虽然 imo 能够调用 private 类成员,即使是静态成员也很奇怪。
【解决方案2】:

你必须在实现YourClass的文件中添加一个定义

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-12
    • 2015-09-29
    • 2011-11-10
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 2013-03-04
    相关资源
    最近更新 更多