我有一个简单的自定义类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>()'
如何初始化自定义对象的矢量?
答案 0 :(得分:0)
编译器认为bar
是一个函数(不带参数并返回vector<Foo>
),而不是vector<Foo>
类型的变量。所以你在某处放了一些错误的括号。
答案 1 :(得分:0)
首先,您要在相应的本地范围内创建一个新对象,我想您不想这样做。
要回答这个问题,请提出:
std::vector<Foo> bar;
bar.resize(10);
或访问成员对象:
bar.resize(10);
//确保包括&lt;矢量&gt;标题或使用正确的命名空间/