【发布时间】:2010-10-15 21:14:58
【问题描述】:
简单的问题,这是有效的 C++:
class Foo
{
void Foo::doSomething();
};
问题的重点:在方法名之前重复使用类名和双冒号是否有效在类声明中?
我在使用 g++ 4.2.3 编译执行此操作的代码时遇到问题。在深入研究和更改代码之前,我希望看到对此处描述语法的内容的引用。或者降级编译器;这确实使用 g++ 3.3.6 构建。
我得到的错误是(大致):
Foo.h:3: error: extra qualification ‘Foo::’ on member ‘doSomething’
我用谷歌搜索过,但想不出什么。我没有标准,即使我这样做了,我也可能需要很长时间才能找到任何权威的东西。我不是 C++ 语言律师。
【问题讨论】:
-
Visual Studio (2008) 接受“Foo::”
-
是的,我知道...但是我正在尝试使用 g++ 构建代码,而且它们接受和不接受的内容通常不同。或者,在我看来,VC 似乎可以接受任何东西,而 g++ 可能很挑剔。 :)
-
我会说 Foo:: 充其量是不必要的,最坏的情况是无效的。因此,在我看来,您完全有理由删除它。
标签: c++ syntax declaration classname