Ich habe ein komisches Problem mit virtuellen Funktionen.
Mein Code sieht ungefähr so aus:
Code:
class Base {
public:
Base();
~Base();
void TestA();
void TestB();
protected:
virtual void A() { printf("Fehler 1\n"); }
virtual void B() { printf("Fehler 2\n"); }
};
class Child : public Base {
protected:
void A();
void B();
}
void Base::TestA() {
A();
}
void Base::TestB() {
B();
}
void Child::A() {
printf("OK 1\n");
}
void Child::B() {
printf("OK 2\n");
}
int main() {
Child *c = new Child();
c->TestA();
c->TestB();
delete c;
return 0;
}
Nun bekomme ich eine komische Ausgabe:
GCC-Bug?
Lesezeichen