在这种情况下,是否有必要进行范围解析?

Is it necessary the scope resolution in this case?

本文关键字:范围 这种情况下 是否      更新时间:2023-10-16

我们是否需要包括

baseClass::statmember.methodmember();

在调用继承自基类的静态成员时,从派生类的方法内部调用它?我在别人编写的代码中看到它,我试着修改它,它也能编译,不包括

作用域
derivedclass::methodDerived() {
    statmember.methodmember();
};

为什么程序员在对成员scope::的所有调用中都包含它,如果它是不必要的?它是否提醒了所有对象中静态成员的唯一性?

或者我错了,代码可能会给出不同的结果?

我猜这是因为以下是允许的:

class Base
{
public:
   static void foo(){}
};
class Derived:public Base
{
public:
   static void foo(){}
};

或者是为了可读性。有时候,仅仅因为没有必要并不意味着它没有用处(即使这种用处是为了可读性,这是一个大问题)。

只有当基类和派生类具有同名函数,并且希望区分它们时,才需要这样做。