我定義了類Brique
。構造函數接受一個forme
和couleur
如下:錯誤2d類中的向量類初始化
class Brique
{
private:
Forme forme ;
Couleur couleur ;
public:
Brique(Forme _forme, Couleur _couleur)
:forme(_forme), couleur(_couleur) {}
};
我已經定義了一個名爲Construction
其構造應使用類Brique
初始化的1x1的向量新類。但是,當我整理我得到這個錯誤:
error: no matching function for call to ‘std::vector::vector(Brique&)’
:contenu(1,vector(brique)){}
Construction
類代碼:
class Construction
{
private:
vector<vector<Brique> > contenu;
public:
Construction(Brique& brique)
:contenu(1,vector<Brique>(brique)){}
};
這裏是主要的
int main()
{
Brique test("square", "red");
Construction temp(test);
return 0;
}
我知道如何使用這樣的指針來初始化向量:
vec.push_back(new Brique(test))
但這會創建一個新實例,我只想使用對我的實例test
的引用。
你在'contenu(1,vector(brique)'''中缺少一個''''但是這應該是一個不同的錯誤 –
NathanOliver
你也需要一個零參數(也許只是空的)你創建了自己的。更多信息:http://stackoverflow.com/questions/4482113/why-would-someone-provide-an-empty-default-constructor-for-a-class –
你還需要檢查double檢查[可用構造函數](http://en.cppreference.com/w/cpp/container/vector/vector)'std :: vector'具有。 – NathanOliver