clang: override hides overloaded virtual member function!??
Verfasst: Sa Jun 15, 2013 5:17 pm
Vielleicht kann mir ja jemand erklären, wie das hier funktioniert.
Ich habe eine Klasse BaseElement, die eine virtuelle Methode "RequestValue" besitzt. Davon leite ich eine Klasse ValueType ab. ValueType kümmert sich nicht nicht um RequestValue. Von ValueType leite ich die Klasse String ab und überschreibe RequestValue.
Dabei erhalte ich folgende Meldungen:
Lasse ich das Override weg, verstecke ich nur noch noch eine virtual member function.
Hier nochmal beide Signaturen, oben die aus BaseElement, ValueType deklariert keine, unten die aus String
Hat jemand eine Idee, was clang von mir hören möchte?
Ich habe eine Klasse BaseElement, die eine virtuelle Methode "RequestValue" besitzt. Davon leite ich eine Klasse ValueType ab. ValueType kümmert sich nicht nicht um RequestValue. Von ValueType leite ich die Klasse String ab und überschreibe RequestValue.
Dabei erhalte ich folgende Meldungen:
Code: Alles auswählen
clang++ | viewdoc (de/xsd/doc).....
In file included from ../../../de/xsd/doc/viewdoc.cpp:41:
../../../de/xsd/block/element/string.h:52:19: error: 'RequestValue' marked 'override' but does not override any member functions
virtual Value RequestValue( OutputConnector & out, ValueRequest & rv ) override;
^
../../../de/xsd/block/element/string.h:52:19: warning: 'XSD::Block::Element::String::RequestValue' hides overloaded virtual function [-Woverloaded-virtual]
../../../de/xsd/block/element.h:393:19: note: hidden overloaded virtual function 'XSD::Block::BaseElement::RequestValue' declared here
virtual Value RequestValue( OutputConnector & out, ValueRequest & valueRequest ); ///< Creates an answer
^
Hier nochmal beide Signaturen, oben die aus BaseElement, ValueType deklariert keine, unten die aus String
Code: Alles auswählen
virtual Value RequestValue( OutputConnector & out, ValueRequest & valueRequest ); ///< Creates an answer
virtual Value RequestValue( OutputConnector & out, ValueRequest & rv ) override;