Funktionsüberschreibung bei verschiedenen Rückgabetypen
Beeinflusst der Rückgabetyp das Überschreiben der Funktion? (Soweit ich weiß, ist return typde kein Teil einer Funktions- / Methodensignatur.) In einer Basisklasse habe ich eine Funktion, die keine Argumente bekommt, returnint
und ist rein virtuell. In jeder abgeleiteten Klasse definiere ich eine Aufzählung für den Rückgabetyp. Die Funktion wird in den abgeleiteten Klassen überschrieben, d. H. Sie hat dieselbe Signatur, aber unterschiedliches Verhalten. Die Frage ist: Ist das für das Überschreiben und Zurückgeben zulässige Typ nicht Teil des Überschreibens von Funktionen?
Codebeispiel:
class Base
{
public:
typedef int ret;
virtual ret method() = 0;
};
class Der1
{
public:
enum ret1{
ret1_0,
ret1_1
};
ret1 method() { return ret1_1;}
};
class Der1
{
public:
enum ret2{
ret2_0,
ret2_1
};
ret1 method() { return ret2_0;}
};