其实所有的编程问题都可以用生活中的例子去解释
编程本身就是为了解决生活中的各种问题与困难
这个就好像你在手机里存通讯录一样,一个联系人
可以有家庭电话,公司电话,手提电话我们把电话
注册在通讯录里,等到我要打电话的时候我一定是
决定好了打哪个电话,相应的那个号码就会被我提取
c++编译器在编译的时候把重写的函数注册就好比存号码
c++在执行的时候你一定会给它传递一个标记告诉他去查
注册中的哪个函数,就好比打电话
要了解C++通过虚函数实现的多态,就需要了解“虚函数表”。
实际上在C++一个对象中,保存了一张表,这张表真实保存了虚函数的地址。
简单地说,当一个父类指针指向一个子类对象时,这个指针中的虚函数表中的函数实际上是派生类的函数,是不是很绕啊?
给你个链接看看吧
它是利用函数指针实现的。
在基类中内部定义了一个函数指针,指向那个虚函数,调用的时候就是直接用该函数指针做的。
当子类继承基类时,如果在定义了那个虚函数,就会自动用子类的函数赋值该函数指针。