class C : public B
{
public:
void C::Test();
};
在成员函数的声明中指定C
有什么意义?
答案 0 :(得分:4)
你不应该这样做。许多现代编译器会将此视为语法错误,例如,g ++ 4.2.1将!
答案 1 :(得分:2)
仅在定义类外部的方法时才需要这样做:
class C : public B
{
public:
void Test();
};
void C::Test() { ... }
答案 2 :(得分:2)
不仅没有意义,它完全是非法的(参见语言标准中的8.3 / 1)。一般来说,在C ++语言中,只有在引用先前声明的实体时才允许限定名称,但在引入新实体时则不允许(有一些例外)规则,但这些都不适用于此。)
您发布的代码需要来自任何符合标准的编译器的诊断消息,因为您的成员函数声明无效。
答案 3 :(得分:1)
没有必要,没有必要这样做。由于Test
的声明属于C
声明的范围,编译器知道函数Test
是C
的成员。