Czy kiedykolwiek ma sens zastąpienie czystej wirtualnej metody inną, czystą wirtualną metodą? Czy są jakieś różnice funkcjonalne lub być może powody, dla których styl kodu preferuje jedną z następujących opcji w stosunku do drugiej?C++ przesłonić czystą metodę wirtualną za pomocą czystej wirtualnej metody
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; }
};
Przekazałby tylko coś komuś czytającemu twój kod. * "Droga osoba, która przegląda mój abstrakcyjny kod ... zauważ, że ta klasa rzeczywiście ma funkcję wirtualną". –