为什么在c++中不允许额外的方法限定

Why in C++ extra method qualification is not allowed?

本文关键字:方法 c++ 不允许 为什么      更新时间:2023-10-16

为什么我们不能用c++写呢

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

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

因为这是声明的语法;它们声明一个非限定的名称,使其在声明范围内具有特定的含义。

如果允许作用域限定,那么它要么是多余的(指定当前作用域),要么是错误的(因为你不能在另一个作用域声明某些东西)。

原因是它是非法的语法。另外,你为什么还要加上多余的资格呢?

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