簡體   English   中英

C ++構造函數初始化堆棧中的非基本成員變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM