Нужно ли разрешение области в этом случае? - PullRequest
1 голос
/ 25 ноября 2011

Нужно ли включать область

baseClass::statmember.methodmember();

в вызов статического члена базового класса, который был унаследован, когда мы вызываем его из метода производного класса?Я вижу это в коде, запрограммированном другим человеком, я пытаюсь изменить его, и он также компилируется без включения области действия

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

Почему программист включил во все вызовы члена scope::если это не нужно?Это напоминание об уникальности статического члена во всех объектах?

Или я ошибаюсь, и код может давать разные результаты?

Ответы [ 2 ]

2 голосов
/ 25 ноября 2011

Полагаю, это потому, что разрешено следующее:

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

Либо так, либо для удобства чтения.Иногда, просто потому, что в этом нет необходимости, это не значит, что он бесполезен (даже если это использование - читабельность, которая важна).

0 голосов
/ 25 ноября 2011

Это будет необходимо, только если базовый класс и производный класс имеют функцию с одинаковым именем, и вы хотите различать их.

В противном случае это не нужно.

...