-2

我有一个简单的自定义类,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>()'

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

4

2 回答 2

0

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

于 2012-10-02T16:33:44.180 回答
0

首先,您正在各自的本地范围内创建一个新对象,我猜您不想这样做。

要回答这个问题,请输入:

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

或访问成员对象:

bar.resize(10);

// 确保包含 <vector> 标头或使用正确的命名空间/

于 2012-10-02T16:37:33.787 回答