[英]initializing the private member of a struct
現在我有
Private:
Struct PageManagerData
{
char name[20];
IPage* storePagePtr;
}
我想將 name 初始化為'\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;
};
這避免了大量潛在的內存管理/初始化/緩沖區溢出錯誤。 具體來說,它利用了零規則:您無需實現特殊成員即可
並享受健壯的對象值語義,沒有泄漏和 UB。
實現您提到的初始化結構的構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.