我定义了类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