私はC ++を初めて使用するので、ポインターについて学び、それらの使用に慣れています。
ユーザーが後でタグ キーを使用してアクセスする可能性のあるオブジェクトを格納するために、オブジェクト マップを宣言しました。
map<string,MyObject*> myMap;
myMap に追加するオブジェクトは、メインによって呼び出される関数で作成されます
void myFunction(){
...
MyObject obj1();
MyObject* objPtr;
objPtr = &obj1;
myMap.insert(pair<string,MyObject*>("xxxx", objPtr));
...
}
この関数を実行すると、オブジェクト ポインターは myMap に完全に挿入されますが、関数の実行後、obj1 への参照が失われます。これは、ポインターとオブジェクトが関数内でローカルに作成されたためだと思います。マップですが、後の空の参照だと思います。
オブジェクトと参照をグローバルに保持するにはどうすればよいですか? ユーザー obj1(m,n) から取得する必要がある変数パラメーターがいくつかあるため、このオブジェクトを関数内に作成したかったのです。助けてくれてありがとう。