Muszę dziedziczyć z dwóch interfejsów, które obie mają tę samą metodę, która w obu przypadkach powinna wykonać dokładnie to samo. Czy ten kod jest poprawny, czy nie? Potrzebuję tego dla pewnego rodzaju klasy proxy. Dzięki za odpowiedzi.Interfejs C++ wiele dziedziczenia z tą samą metodą
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
};
Metody powinny być "wirtualne", prawda? –
Oczywiście. Poprawione. –
Ładne pytanie - od tytułu spodziewałem się miłego, prostego dziedziczenia diamentów (czyli wirtualnego dziedziczenia), ale z tym nie jestem pewien. Z pewnością można użyć rozdzielczości zakresu, aby nadpisać dwie odziedziczone metody o tej samej nazwie osobno, ale oznacza to duplikowanie kodu, więc jest to interesujące. – Steve314