Struct a {
Void Kk () {Printf ("a / n");}}; struct b {void kk () {printf ("b / n");}};
INT Main (int Argc, char * argv []) {a * a = new a; b * b = new b; A = (a *) b; A-> kk (); return 0;} output A // / STRUCT P {Virtual Void KK () = 0;
Struct A: public p {
Void KK () {Printf ("a / n");}}; struct b: public p {void kk () {printf ("b / n");}};
INT Main (int Argc, char * argv []) {a * a = new a; b * b = new b; A = (a *) b; A-> kk (); return 0;} Output bwhy?