[英]error 2d vector class initialization in class
我定義了Brique
類。 構造函數接受一個forme
,並couleur
如下:
class Brique
{
private:
Forme forme ;
Couleur couleur ;
public:
Brique(Forme _forme, Couleur _couleur)
:forme(_forme), couleur(_couleur) {}
};
我定義了一個名為Construction
的新類,該類的Construction
函數應使用Brique
類初始化1x1的向量。 但是當我編譯時出現了這個錯誤:
錯誤:沒有匹配的函數調用'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
引用。
在類的Construction
你初始化領域contenu
不正確。 您提到要在構造函數中將其初始化為1x1 std::vector
。 為此,您必須使用std::vector::vector
文檔中引用的構造函數(2) 。
因此,請嘗試以下操作:
class Construction {
private:
std::vector<std::vector<Brique>> contenu;
public:
Construction(const Brique& brique)
: contenu(1, std::vector<Brique>(1, brique)) {}
};
這會將contenu
設置為最初包含brique
值的1x1“矩陣”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.