0

有什么原因我们不能用 C++ 编写

class MyClass
{
public:
    void MyClass::MyMethod();  // <----
}

它给出了“额外的资格”或一些这样的编译错误,但这是有原因的还是就这样发生了?

4

2 回答 2

6

因为那是声明的语法;他们声明一个非限定名称在声明范围内具有特定含义。

如果允许范围限定,它总是是多余的(指定当前范围)或错误的(因为您不能在另一个范围内声明某些内容)。

于 2013-05-31T11:02:53.923 回答
4

原因是它是非法语法。此外,您为什么需要添加多余的额外资格?

成员函数是在类定义的上下文中声明的,没有必要明确地将其限定为该类的成员函数 - 而且它会损害可读性。

于 2013-05-31T10:59:44.760 回答