相关疑难解决方法(0)

带有构造函数的类的C++向量

//Using g++ and ubuntu.
#include <vector>
using namespace std;
Run Code Online (Sandbox Code Playgroud)

定义一个类:

class foo(){
(...)
foo(int arg1, double arg2);
}
Run Code Online (Sandbox Code Playgroud)

构造函数:

foo::foo(int arg1, double arg2){ 
(...) //arrays whose length depend upon arg1 and arg2
} 
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

vector<foo> bar(10); //error: no matching function for call to 'foo::foo()'
bar[0] = new foo(123, 4.56);
(...)
Run Code Online (Sandbox Code Playgroud)

另一种方法(我更喜欢)是使用push_back:

vector<foo> bar; //works
bar.push_back(new foo(123, 4.56)); //throws similar error.
//Omitting the "new" compiles but throws a "double free or corruption (fasttop)" on runtime.
Run Code Online (Sandbox Code Playgroud)

我希望矢量的不同元素的构造方式不同,所以我不想使用"重复序列构造函数".应该做什么?

c++ constructor class vector

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

class ×1

constructor ×1

vector ×1