【发布时间】:2012-08-21 13:24:08
【问题描述】:
我在两个编译器上进行了测试,惊讶地发现它们都毫无怨言地支持以下定义:
class A {
A();
};
A::A::A() {}
^^^
请注意,这也适用于方法,尽管它在声明被过度限定时被标记。
问题:
- 这是一个有效的 C++ 程序吗?
- 如果是这样,它的用途是什么 - 还是仅仅是副产品?
更新详情:
如果最初的问题不清楚或太短:我很好奇为什么定义上允许有多余的限定词(上面还添加了强调)。
Clang 一个 Apple 的 GCC 4.2 + LLVM 是编译器
【问题讨论】:
-
有人问过这个问题,但我想这比某些人更难找到。
-
@chris 我浏览了几页,但一无所获——如果找到了 dup,很高兴关闭。也许我只是没有使用正确的术语进行搜索。
-
@chris 是的。我记得詹姆斯回答的问题非常相似。但我没有心情去挖掘他的 2000 多个答案。
-
@Mysticial: Scope resolution operator
标签: c++ scope definition