以下结构定义是什么意思?

qballer

在代码的一些地方,我有一个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

该实例将插入到函数范围之外使用的数据结构中,并通过引用传递给数据结构。

  1. 当我们离开函数范围时,实例不应该死吗?
  2. 结构定义的最后一行是什么意思?

编辑----为什么不是重复的,请重新打开----::结构定义中的* PT_NameOfStruct,FAR LPT_NameOfStruct与你们所链接的问题也不同。另外,在方法堆栈上定义实例时,存在通过ref传递实例的问题。奇怪的是该代码有效,所以我想知道我在这里缺少什么。在尝试遍历数据结构的其他函数中访问被破坏的对象时,为什么没有出现异常。还是认为这是重复的吗?

迈克·西摩

当我们离开函数范围时,实例不应该死吗?

是的。如果您未显示给我们的代码在此之后实际上使用了对它的引用,那么这是错误的。但是由于我们看不到它,所以我们只能猜测它是否能够做到这一点。

更新:现在您已经向我们展示了实际发生的情况,它正在传递给map::insert,它存储其自变量的副本(即使它通过引用获取自变量)。instance假设它具有有效的复制语义,则销毁自身不会有任何问题

struct定义的结尾是什么意思?

它声明:

  • 一门课tagNameOfStruct
  • 类类型的别名,称为T_NameOfStruct在C ++中,这是完全没有意义的。在C语言中,有些人有这样做的坏习惯,以便struct在指定类型时避免键入
  • 指向该类型的指针的别名,称为PT_NameOfStruct这比第一个typedef还要糟糕,因为它隐藏了重要的信息,即某些东西是指针。
  • 指向该类型的过时“远”指针的别名,称为LPT_NameOfStruct这是16位平台的宿醉;在现代平台上,它将与常规指针类型相同。

不要将其用作声明类类型的模型。最好保持简单:

class NameOfStruct {  // or "struct", if you want members to be public by default
    // members
};

NameOfStruct instance;  // No need for a typedef
NameOfStruct * pointer; // Make it clear that it's a pointer

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

以下javascript代码结构是什么意思?

来自分类Dev

结构定义末尾的变量名是什么意思?

来自分类Dev

以下C ++语句是什么意思

来自分类Dev

以下javascript语法是什么意思?

来自分类Dev

以下声明是什么意思?

来自分类Dev

以下javascript语法是什么意思?

来自分类Dev

以下内核消息是什么意思?

来自分类Dev

以下dmesg输出是什么意思?

来自分类Dev

以下smali术语是什么意思?

来自分类Dev

以下几行是什么意思?

来自分类Dev

以下几行代码是什么意思

来自分类Dev

这个typedef定义是什么意思?

来自分类Dev

这个定义是什么意思?

来自分类Dev

这样的定义是什么意思?

来自分类Dev

BigDecimal的定义是什么意思?

来自分类Dev

定义lambda时[&]是什么意思?

来自分类Dev

这样的定义是什么意思?

来自分类Dev

定义宏时`(...)`是什么意思?

来自分类Dev

BigDecimal的定义是什么意思?

来自分类Dev

MonadReader 的实例定义是什么意思?

来自分类Dev

用memset()设置为零;初始化为静态结构定义是什么意思?

来自分类Dev

以下代码分析是什么意思?

来自分类Dev

以下代码中的“-97”是什么意思?

来自分类Dev

以下typedef在chrono :: duration中是什么意思?

来自分类Dev

以下链接语句在JavaScript中是什么意思?

来自分类Dev

以下Java脚本表达式是什么意思

来自分类Dev

在ReactJS中,以下表示法是什么意思?

来自分类Dev

以下代码段的输出是什么意思?

来自分类Dev

POST在以下句子中是什么意思?