Ho bisogno di ereditare da due interfacce che hanno entrambi lo stesso metodo che in entrambi i casi dovrebbe eseguire esattamente la stessa cosa. Questo codice è corretto o no? Ho bisogno di questo per qualche tipo di classe proxy. Grazie per le risposte.C++ interfaccia ereditarietà multipla con lo stesso metodo
class InnerInterface {
virtual int getID() const = 0;
//...
};
class OuterInterface {
virtual int getID() const = 0;
//...
};
class Foo : public InnerInterface, public OuterInterface {
virtual int getID() const;
//all abstract methods
};
I metodi dovrebbero essere 'virtuali', giusto? –
Ovviamente. Corretto. –
Bella domanda - dal titolo mi aspettavo una bella ereditarietà del diamante (quindi uso l'ereditarietà virtuale), ma con questo non sono sicuro. Si può certamente usare la risoluzione dell'ambito per sovrascrivere separatamente i due metodi ereditati con lo stesso nome, ma ciò significa codice duplicato, quindi questo è interessante. – Steve314