将vector声明为类数据成员时出错

时间:2016-01-03 08:35:59

标签: c++ vector types

我仍然想知道为什么会出现错误信息 在尝试声明一个向量时:

“未知类型名称'setSize'”

#ifndef INTEGERSET_H
#define INTEGERSET_H

#include <vector>
using namespace std;

class IntegerSet
{
public:
    IntegerSet();
    IntegerSet(const int [], const int);
    IntegerSet & unionOfSets(const IntegerSet &, const IntegerSet &) const;
    IntegerSet & intersectionOfSets(const IntegerSet &, const IntegerSet &) const;
    void insertElement(int);
    void deleteElement(int);
    void printSet();
    bool isEqualTo(const IntegerSet &);

    const int setSize = 10;
    vector<bool> set(setSize);

};



#endif

PS:为了复制和粘贴上面的代码,我必须为每一行添加4个空格,因为它们都超出了格式。有更简单的方法吗?

1 个答案:

答案 0 :(得分:7)

将其解析为函数声明:

vector<bool> set(setSize); // function `set`, argument type `setSize`

您需要不同的初始化语法:

vector<bool> set = vector<bool>(setSize);

另请注意,在set期间提供诸如using namespace std;之类的名称是一个非常糟糕的主意。 using namespace std; is a bad idea in most cases anyway