我定义了班级Brique
。构造函数接受forme
和couleur
,如下所示:
class Brique
{
private:
Forme forme ;
Couleur couleur ;
public:
Brique(Forme _forme, Couleur _couleur)
:forme(_forme), couleur(_couleur) {}
};
我已经定义了一个名为Construction
的新类,构造函数应该使用类Brique
来初始化1x1的向量。但是当我编译时,我收到了这个错误:
错误:没有匹配的调用函数 “的std ::矢量::矢量(Brique&安培)”
:contenu(1,矢量(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
的引用。
答案 0 :(得分:1)
在课程Construction
中,您错误地初始化了字段contenu
。您提到要在构造函数中将其初始化为1x1 std::vector
。为此,您必须使用std::vector::vector
documentation中引用的构造函数(2)。
所以,请尝试以下方法:
class Construction {
private:
std::vector<std::vector<Brique>> contenu;
public:
Construction(const Brique& brique)
: contenu(1, std::vector<Brique>(1, brique)) {}
};
这会将contenu
设置为1x1&#34;矩阵&#34;最初包含brique
的值。