#include<cstdio>
class A {
public:
virtual void method() {
printf("method A\n");
}
};
class B : public A {
public:
void method() {
printf("method B\n");
}
};
int main() {
B b;
b.method();
((A)b).method();
return 0;
}
/**
Wypisuje:
method B
method A
*/
int main() {
B* b = new B();
b->method();
((A*)b)->method();
return 0;
}
/**
Wypisuje:
method B
method B
*/
Dlaczego?