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

时间:2011-11-25 12:06:53

标签: c++ inheritance static member

我们是否需要包含范围

baseClass::statmember.methodmember();

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

derivedclass::methodDerived() {
    statmember.methodmember();
};

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

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

2 个答案:

答案 0 :(得分:2)

我猜这是因为允许以下内容:

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

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

答案 1 :(得分:0)

仅当基类和派生类具有相同名称的函数并且您想要区分它们时才有必要。

否则没有必要。