我想創建一個類,將成員對象傳遞給它的父對象進行初始化。下面的代碼顯示了我想要做的事情。如何將類的成員對象傳遞給其基類的構造函數?
class TQueueViewerForm1 : public TQueueViewerForm
{
private: // User declarations
DOMMsgCollectionEditorImpl m_collection;
public: // User declarations
__fastcall TQueueViewerForm1(TComponent* Owner);
};
__fastcall TQueueViewerForm1::TQueueViewerForm1(TComponent* Owner)
: TQueueViewerForm(Owner, m_collection)
{
}
但是,這似乎並不奏效。它看起來像構造函數TQueueViewerForm()在m_collection被初始化之前被調用。由於TQueueViewerForm()嘗試使用未初始化的對象,因此這會使程序崩潰。
那麼......我在這裏做了什麼選擇?理想情況下,我想在父類初始化之前初始化m_collection。
哦,哇。這將解決這個問題,但我不認爲我可以原諒自己寫這種代碼... – QuestionC
同意。這看起來過於複雜,並且可能不值得爲不熟悉代碼庫的新維護人員進行維護。最好重新考慮問題並嘗試不同的方法。 – jia103