2013-03-30 106 views
1

如何爲C++中的存儲庫分配內存?爲存儲庫構造函數分配內存C++

這是倉儲類:

class Repository{ 

private: 
    DynamicVector<Medicine> MedList; 
}; 

當我在使用結構在C initRepository功能(構造)一直在尋找這樣的:

Repository* initRepository() 
{ 
    Repository* repo =(Repository*)malloc(sizeof(Repository)); 
    repo->MedList=createVector(); 
    return repo; 
} 

,但現在我要改造C版本轉換爲C++版本。我怎麼做?

+0

自動調用的C++構造函數是與類具有相同名稱的無類型函數。把你的init函數放到那裏。 – Etherealone

回答

2

你不需要做任何特別的事情。只要創建一個Repository對象:

Repository repo; 

這將調用隱式定義的默認(如,默認行爲)默認情況下(如,不帶任何參數)構造函數Repository,這也將構成成員MedList。一旦你有了你的對象,你可以做任何你喜歡的事情。

如果你想成員MedListcreateVector函數的結果初始化,您可以定義自己的默認構造函數,像這樣:

class Repository { 
    public: 
    Repository() 
     : MedList(createVector()) 
    { } 
    private: 
    DynamicVector<Medicine> MedList; 
}; 

它使用一個成員初始化列表(一切:之後)初始化MedList