我是 C++ 新手,所以仍在学习指针并习惯使用它们。
我已经声明了一个对象映射,以便存储用户稍后可能使用标签键访问的对象。
map<string,MyObject*> myMap;
我添加到 myMap 的对象是在我的 main 调用的函数中创建的
void myFunction(){
...
MyObject obj1();
MyObject* objPtr;
objPtr = &obj1;
myMap.insert(pair<string,MyObject*>("xxxx", objPtr));
...
}
当我执行这个函数时,对象指针被完美地插入到 myMap 中,但是在函数执行之后我失去了对 obj1 的引用我猜是因为指针和对象是在函数内部本地创建的,所以我仍然有一个元素“xxx”在地图,但我认为之后是一个空的参考。
如何在全局范围内保留对象和引用?我想在函数中创建这个对象,因为它有一些需要从用户 obj1(m,n) 获取的可变参数。谢谢你的帮助。