Compiler Fehler?!
-
Hi
class A { public: template<class> static void foo() { } }; class B : public A { static void foo() { } }; class C : public B { }; int main() { C::foo<char>(); }error C2062: type 'char' unexpectedWarum?
-
Wenn ich die beiden foo-Funktionen in eine Klasse reinschreibe klappt alles.
-
weil B::foo A::foo verdeckt.
-
Ja klar, aber warum klappt es denn, wenn ich beide Funktionen in eine Klasse schreibe (und die Vererbungen weglasse)?
-
weil sie sich dann nicht gegenseitig verdecken.
-
ok
-
Vielleicht hilft's:
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=oho#Answ
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=Overload#Answ