[英]C++ Constructor Initialize Non Primitive Member Variables In Stack
我有一个关于C ++构造函数的基本问题。
假设我有一个类似这样的类定义:
class Project {
public:
int time;
std::vector<Task> tasks;
Project();
};
我想在源文件中初始化此向量,但是我不确定执行此操作的正确和有效方法。
Project::Project() {
time = 0;
tasks = std::vector<Task>();
}
这是初始化堆栈中对象的正确方法吗?
向量可以使用自定义分配器,因此您可以使用专门用于自定义分配器的向量类(例如this )。
但是,您不能使用构造函数本身的堆栈,因为它在构造函数完成后会失效。 您要么需要在对象本身中分配内存(在链接的示例中,使arena
成为类的成员),要么将其作为构造函数的参数接收。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.