我有一个关于C ++构造函数的基本问题。
让我们说我有一个类似这样的类定义:
class Project {
public:
int time;
std::vector<Task> tasks;
Project();
};
我想在源文件中初始化此向量,但是我不确定执行此操作的正确和有效方法。
Project::Project() {
time = 0;
tasks = std::vector<Task>();
}
这是初始化堆栈中对象的正确方法吗?
答案 0 :(得分:0)
向量可以使用自定义分配器,因此您可以使用专门用于自定义分配器的向量类(例如this one)。
但是,您不能使用构造函数本身的堆栈,因为它在构造函数完成后将变得无效。您要么需要在对象本身中分配内存(在链接的示例中,使arena
成为类的成员),要么将其作为构造函数的参数接收。