Überladene virtuelle Funktion ausblenden

9

Betrachten Sie die folgende Strukturhierarchie:

%Vor%

Das Kompilieren (mit clang oder g++ mit -Woverloaded-virtual ) gibt mir eine Warnung:

%Vor%

Wenn ich jedoch I12 folgendermaßen ändere, kompiliert es unter clang , während g++ -Woverloaded-virtual immer noch eine Warnung ausgibt:

%Vor%

Wo liegt der Unterschied zwischen using I2::doit und void doit(int) override = 0 ? Naiverweise hätte ich gedacht, dass Ersteres ausreicht, um den Compiler zu informieren, dass mir bewusst ist, dass es zwei Versionen von doit gibt.

    
phimuemue 04.10.2016, 11:56
quelle

1 Antwort

1

Es beklagt sich, dass doit in Derived versteckt ist. Eine Lösung:

%Vor%     
Maxim Egorushkin 04.10.2016, 14:47
quelle

Tags und Links