Mittlerweile habe ich mich zum Kapitel "Virtuelle Funktionen" vorgekämpft... vom Verständnis her bis jetzt kein Problem, aber ich wundere mich, dass mir mein Compiler bei
C++:
1#include <iostream> 2usingnamespace std; 3 4struct X 5 {}; 6 7struct Y : public X 8 {}; 9 10struct A 11 { 12virtual X* (); 13 }; 14 15struct B : public A 16 { 17virtual Y* (); 18 }; 19 20void A::f() 21 { 22 cout << "A::f() aufgerufen" << endl; 23 } 24 25void B::f() 26 { 27 cout << "B::f() aufgerufen" << endl; 28 } 29 30int main() 31 { 32 B* bp = new B; 33 A* ap = bp; // a zeigt nun auf B-Objekt 34 35 ap->f(); 36 }
folgende Fehlermeldungen um die Ohren haut:
13 DBleimann\vfunc.cpp expected unqualified-id before ')' token abstract declarator 13 DBleimann\vfunc.cpp abstract declarator `X*' used as declaration 13 DBleimann\vfunc.cpp `$_10' declared as a `virtual' field field 18 DBleimann\vfunc.cpp expected unqualified-id before ')' token 18 DBleimann\vfunc.cpp abstract declarator `Y*' used as declaration 18 DBleimann\vfunc.cpp `$_11' declared as a `virtual' field 22 DBleimann\vfunc.cpp no `void A::f()' member function declared in class `A' 27 DBleimann\vfunc.cpp no `void B::f()' member function declared in class `B' ?