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;
}
输出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;
}
输出B
why?