То, что вы делаете, является наиболее кратким и «стандартным» способом сделать это, но некоторые люди предпочитают это:
class SomeBase
{
public:
bool operator!=(const SomeBaseClass& other);
};
class SomeObject: public SomeBase
{
typedef SomeBase base; // Define alias for base class
public:
bool operator!=(const SomeObject &other)
{
// Use alias
if (base::operator!=(other))
return true;
// ...
return false;
}
};
Преимущества этого метода в том, что он проясняет намерение, дает стандартную аббревиатуру для того, что может быть длинным именем базового класса, и если ваш базовый класс меняется, вам не нужно менять каждое использование базового .
См. Использование "super" в C ++ для дополнительного обсуждения.
(Лично меня это не волнует, и я не рекомендую это, но я думаю, что это один правильный ответ на вопрос.)