上面的例子我称为“反多态”,因为,通过一个多态的指针(多态时是父类型的指针,上面的例子是子类型的指针)访问普通成员函数时访问的是子类的函数(刚好和多态相反),通过子类的指针访问虚函数时访问的是父类的函数(也刚好和多态相反)。
首先,不建议将父类指针转为子类指针然后,对于类指针: 虚函数通过虚函数表访问,即会访问到此指针所指向的值的真正类型里的函数 普通函数访问到指针定义时的类型里的函数 题目中: fun() 是虚函数 this_fun() 是普通函数 d 是子类指针 d 指向的是父类指针 this_fun() 是普通函数,所以,将通过 d 指针所定义...
先参考:http://blog.csdn.net/haoel/article/details/1948051/ http://www.linuxidc.com/Linux/2013-07/87901.htm 然后说说我的认识:问题一:因为new出的对象是B,所以该对象虚函数表中fun未被D中的fun覆盖,于是" fun in B"问题二:因为pd1指针是指向D的,所以调用b1,是去D的公共函数区调...