理解できない問題があります。
class Systemいくつかのメンバーフィールドを持つがあり、そのうちの1つがタイプであるとしましょうunordered_map。したがって、ヘッダーファイルでクラスを宣言するときは、ヘッダーの先頭に書き込みます#include <unordered_map>。
現在、このフィールドを宣言する方法は2つあります。
1.std::unordered_map<std::string,int> umap;
2.std::unordered_map<std::string,int>* p_umap;
クラスのコンストラクターで、最初のオプションを選択した場合、のコンストラクターはタイプのインスタンスの構築の一部としてclass Systemフィールドのデフォルトコンストラクターを呼び出すため、初期化子リストでそのフィールドを初期化する必要はありません。umapclass System
2番目のオプションを選択した場合、p_umapこの動的割り当てを削除するには、コンストラクター(初期化リスト内)のフィールドを演算子newおよびデストラクタで初期化する必要があります。
これら2つのオプションの違いは何ですか?フィールドの1つがタイプであるクラスがある場合、unordered_mapこのフィールドをどのように宣言しますか?ポインタとして、または型の変数としてunordered_map?