为什么在声明成员函数时指定类名?

时间:2011-05-09 21:12:51

标签: c++ class

class C : public B
{
public:
    void C::Test();
};

在成员函数的声明中指定C有什么意义?

4 个答案:

答案 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声明的范围,编译器知道函数TestC的成员。

相关问题