<分区>
在代码的一些地方,我有一个 struct
定义,如下所示:
typedef struct tagNameOfStruct{
//some methods and members
}T_NameOfStruct, * PT_NameOfStruct, FAR LPT_NameOfStruct;
typedef struct tagNameOfStructLists{
//some methods and members
}T_NameOfStructLists, * PT_NameOfStructLists, FAR LPT_NameOfStructLists;
typedef pair<T_NameOfStruct, T_NameOfStructLists> CStructPair;
typedef map<T_NameOfStruct, T_NameOfStructLists> CStructMap;
然后我在一个循环中的方法中看到以下代码行
T_NameOfStruct instance;
T_NameOfStructLists listInstance;
m_MapInstance.insert(CStructPair(instance, listInstance));
//structMapInstance is a members of method class of type CStructMap
该实例被插入到函数范围之外使用的数据结构中。它通过引用传递给数据结构。
- 当我们离开函数作用域时,实例不应该死掉吗?
- 结构定义的最后一行是什么意思?
编辑----为什么这不是重复的,请重新打开----: 结构定义中的 * PT_NameOfStruct、FAR LPT_NameOfStruct 也与你们链接的问题不同。还存在在方法堆栈上定义时通过 ref 传递实例的问题。奇怪的是代码有效,所以我想知道我在这里遗漏了什么。为什么我在尝试访问遍历数据结构的不同函数中的已销毁对象时没有出现异常。 仍然认为它是重复的?