【发布时间】:2011-02-07 20:20:44
【问题描述】:
This answer 说:
……最后,
typedef struct { ... } Foo;声明一个匿名结构并为其创建一个typedef。因此,使用此构造,它在标记命名空间中没有名称,只有 typedef 命名空间中的名称。这意味着它也不能被前向声明。如果要进行前向声明,则必须在标签命名空间中为其命名。
什么是前向声明?
【问题讨论】:
-
你不能转发声明一个匿名结构。
-
@FredN 我真的不确定你指的是什么。 (链接到 question 的 “this answer” 链接没有帮助,因此我们不知道是哪个答案。)在 C++ 中,您可以转发 -声明一个类,但不是 typedef 名称。一个类的“前向声明”就是一个类声明。
-
@sbi:虽然您认为 OP 含糊不清(而且是该网站的新手,所以不知道如何正确链接到特定答案),但该问题只有两个答案也就是说您不能转发声明 typedef,并且查看其中任何一个答案的人(我在上面的一个答案中包含了更完整的引用)将拥有真正回答这个问题所需的上下文。
-
请注意这个问题被标记为 C++ 但引用是指 C