现在我有
Private:
Struct PageManagerData
{
char name[20];
IPage* storePagePtr;
}
我想将 name 初始化为类似'\0'
并将 storePagePtr 初始化为NULL
但现在我无法在构造函数中访问这些值来初始化它们。我该怎么做?
现在我有
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。
实现您提到的初始化结构的构造函数。