我目前正在學習智能指針,並在我的代碼中實際使用它們。不過,我想重讀智能指針的文件和跨越這條線在MSDN(https://msdn.microsoft.com/de-de/library/hh279669.aspx)傳來:初始化智能指針成員變量的正確方法是什麼?
// When initialization must be separate from declaration, e.g. class members,
// initialize with nullptr to make your programming intent explicit.
shared_ptr<Song> sp5(nullptr);
//Equivalent to: shared_ptr<Song> sp5;
現在我在我的頭文件使用此:
shared_ptr<Song> sp5 = NULL;
我試了一下現在有一段時間了,但我真的無法讓MSDN例子在沒有出現大量錯誤的情況下工作,但是當試圖找出問題時,並沒有太多的資源,甚至告訴我初始化智能指針這個。
是否真的有必要像MSDN建議的那樣解決它?
你使用什麼編譯器? * nullptr *是一個C++ 11功能,因此您必須啓用C++ 11支持... –
@PaoloM:所以是'shared_ptr'。 –
尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證示例。 – luk32