void print_func(A* p) { p -> print(); } int main() { A a(1); B b(2,3); //a.print(); //b.print(); print_func(&a);// 这两个调用的都是a的print print_func(&b); a = b; a.print(); return 0; }
B*这个类型会被当成A*来访问。所以调用的是A的print。
因为这个寻址,不是用虚表寻址,而是编译器做的静态绑定。