【发布时间】:2016-08-19 17:20:54
【问题描述】:
我定义了类Brique。构造函数接受forme 和couleur,如下所示:
class Brique
{
private:
Forme forme ;
Couleur couleur ;
public:
Brique(Forme _forme, Couleur _couleur)
:forme(_forme), couleur(_couleur) {}
};
我已经定义了一个名为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 的引用。
【问题讨论】:
-
您在
contenu(1,vector<Brique>(brique)中缺少),但这应该是另一个错误。 -
此外,由于您创建了自己的类,因此您将需要一个零参数(可能只是空的)默认构造函数。更多信息:stackoverflow.com/questions/4482113/…
-
您还需要仔细检查available constructors
std::vector有。 -
Brique 类不应有任何默认构造函数。问题条件。
-
我只能使用iostream、vector和string。我将尝试使用指针向量和 push_back 指向实例测试的指针
标签: c++ class vector constructor