Имеет ли смысл переопределять чистый виртуальный метод другим чистым виртуальным методом? Существуют ли какие-либо функциональные различия или, возможно, причины стиля кода, чтобы предпочесть один из следующих вариантов по сравнению с другим?C++ переопределяет чистый виртуальный метод с использованием чистого виртуального метода
class Interface {
public:
virtual int method() = 0;
};
class Abstract : public Interface {
public:
int method() override = 0;
};
class Implementation : public Abstract {
public:
int method() override { return 42; }
};
Versus:
class Interface {
public:
virtual int method() = 0;
};
class Abstract : public Interface {};
class Implementation : public Abstract {
public:
int method() override { return 42; }
};
Это могло бы только сообщить кому-то, кто читает ваш код. * «Дорогой человек, просматривающий мой абстрактный код ... обратите внимание, что этот класс действительно имеет виртуальную функцию». –