C++的虚函数是我学多态的时候 认识的 ,就是 用父类指针指向子类对象时, 根据指向的对象调用对应的函数而体现出的多态性。
我把 function加上 virtual 修饰 后 打印结果:
那这次调用 function() 的时候,按照多态的定义 也应该有 父类指针调用子类对象(类似的操作)了?
而且 我知道 如果不加 virtual 的话 调用函数是根据 指针的类型调用的。
我本身知道 加上 virtual 就可以 满足我的需求 但是 我自己解释不通为啥?
你不写virtual,说白了就是调用的A的display,而A的display调用的是A的function,这没什么吧。
加了virtual,就是覆盖,在类B的虚函数表中,B::function覆盖了A::function,此时调用的就是B::function
你不写virtual ,子类就无法重写父类的函数,
这只是类似局部变量和全局变量同名了而已
第一个不是重写,只是多了一个B::function
第二个才是把基类的覆盖了