3
現在我有初始化結構的私有成員
Private:
Struct PageManagerData
{
char name[20];
IPage* storePagePtr;
}
我想初始化的名字像'\0'
和storePagePtr到NULL
但現在我不能爲了初始化它們的構造函數訪問這些值。我該怎麼做?
現在我有初始化結構的私有成員
Private:
Struct PageManagerData
{
char name[20];
IPage* storePagePtr;
}
我想初始化的名字像'\0'
和storePagePtr到NULL
但現在我不能爲了初始化它們的構造函數訪問這些值。我該怎麼做?
實現您提到的初始化結構的構造函數。
您的代碼看起來不像有效的C++
struct PageManagerData
{
PageManagerData() : name { 0 }, storePagePtr(nullptr) { }
private:
char name[20];
IPage* storePagePtr;
};
這仍然不是典型的C++:
struct PageManagerData
{
private:
std::string name;
std::unique_ptr<IPage> storePage;
};
這避免了潛在的內存管理/初始化一個巨大的主機/緩衝區溢出錯誤。具體來說,它利用Rule Of Zero:你可以不實施特別會員
,並享受強大的對象值語義,無滲漏,請勿和UB。
這聲明瞭一個嵌套類型,但不是一個實例。 – 2013-03-04 14:38:00