错误嵌套向量<>在向量中<>

时间:2011-05-14 00:51:36

标签: c++ class vector nested-class

我在向量中嵌套向量存在问题,相当于C中的2D数组。我已经尝试过在许多网站上发布的代码,但无济于事。

class Board
{
    public:
        vector< vector<Cell> > boardVect; //Decalre the parent vector as a memebr of the Board class    

        Board()
        {
            boardVect(3, vector<Cell>(3)); //Populate the vector with 3 sets of cell vectors, which contain 3 cells each, effectivly creating a 3x3 grid. 

        }
};

当我尝试编译时,收到此错误:

F:\ main.cpp | 52 |错误:无法调用'(std :: vector&gt;)(int,std :: vector)'

第52行是:boardVect(3, vector<Cell>(3));

在使用3个向量类构造父向量时,是否出现错误?

1 个答案:

答案 0 :(得分:12)

您需要使用初始化列表来调用类成员的构造函数,即:

Board()
    :boardVect(3, vector<Cell>(3))
{}

一旦你输入了构造函数的主体,就太晚了,所有的成员都已经构造好了,你只能调用非构造函数的成员函数。你当然可以这样做:

Board()
{
    boardVect = vector<vector<Cell> >(3, vector<Cell>(3));
}

但初始化列表是首选。