Kann ich in C++ eine *Alias*-Mitgliedsfunktion erstellen?C++

Programme in C++. Entwicklerforum
Anonymous
 Kann ich in C++ eine *Alias*-Mitgliedsfunktion erstellen?

Post by Anonymous »

Ich überarbeite ein Projekt und muss eine Reihe abgeleiteter Klassen unter derselben Basisklasse vereinheitlichen.
Dies sind zwei abgeleitete Klassen:

Code: Select all

class D1 : public virtual B {
virtual int F(int i) { implementation }
};

class D2 : public virtual B {
virtual int G(int i) { implementation }
};
Dies ist die Basisklasse:

Code: Select all

class B {
virtual int F(int i) = 0;
};
Ich kann die abgeleiteten Klassen nicht ändern, nur die Basisklasse. Deshalb möchte ich B::F() einen Alias ​​hinzufügen, damit die abgeleiteten Klassen entweder F() oder G() verwenden können.
Ich habe es auf diese Weise versucht:

Code: Select all

class B {
virtual int F(int i) = 0;
inline int G(int i) { return F(i); }
};
Das Problem besteht darin, dass D2 nicht instanziiert werden kann, da es die rein virtuelle Funktion der Basisklasse nicht implementiert.
Gibt es eine andere Möglichkeit, das gleiche Ziel zu erreichen?
Die Version der Sprache, die ich verwende, ist C++23.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post