我想知道一些關於C++中的對象初始化。如果可能,我應該避免使用'new'關鍵字,因爲我不需要它提供的內容(動態分配,對嗎?),我不想手動刪除對象。我有麻煩調用我的對象的初始化,但不使用新的。我有這個類:對象初始化沒有「新」C++
class Apodization {
public:
Apodization()
{
std::cout << "Constructor for Apodization" << std::endl;
}
}
和驗證碼:
Apodization* apoObj();
// Apodization* apoObj = new Apodization();
使用時新創建的對象,但並非沒有打印發生如預期。我猜這是因爲我只是在上面的例子中創建了一個Apodization類型的指針,但我不知道該從哪裏去。我想知道不使用new關鍵字來初始化Apodization對象的正確方法。謝謝您的幫助!我發現來自Java和Python的C++類有點奇怪。
除非你需要一個指針,你應該有對象:'變跡apoObj();' – NathanOliver
如果你有一個指針,創建什麼,直到你調用'new'。如果你有一個堆棧分配的對象,你可以調用初始化器。 – tadman
如果您想要動態分配並且不想手動刪除對象,請使用std :: unique_ptr。 – Max