C ++向量初始化

时间:2012-10-02 16:29:58

标签: c++ vector

我有一个简单的自定义类Foo,我想制作Foo个对象的向量。在我的.h文件中,我声明了这样的向量:

std::vector<Foo> bar;

然后我尝试初始化它以在.cpp文件中具有这样的容量:

vector<Foo> bar;
bar.resize(10);

Foo有一个自定义构造函数:

Foo(string name, int number)

这给了我一个编译错误:

a.cpp:20:6: error: request for member 'resize' in 'bar', 
which is of non-class type 'std::vector<Foo>()'

如何初始化自定义对象的矢量?

2 个答案:

答案 0 :(得分:0)

编译器认为bar是一个函数(不带参数并返回vector<Foo>),而不是vector<Foo>类型的变量。所以你在某处放了一些错误的括号。

答案 1 :(得分:0)

首先,您要在相应的本地范围内创建一个新对象,我想您不想这样做。

要回答这个问题,请提出:

std::vector<Foo> bar;
bar.resize(10);

或访问成员对象:

bar.resize(10);

//确保包括&lt;矢量&gt;标题或使用正确的命名空间/