今私は持っています
Private:
Struct PageManagerData
{
char name[20];
IPage* storePagePtr;
}
'\0'
name をstorePagePtrのようなものに初期化したいのですがNULL
、現在、コンストラクターでこれらの値にアクセスして初期化することはできません。どうすればいいのですか?
今私は持っています
Private:
Struct PageManagerData
{
char name[20];
IPage* storePagePtr;
}
'\0'
name を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 なしで、堅牢なオブジェクト値のセマンティクスを利用できます。
あなたが言及した初期化を行う構造のコンストラクターを実装します。