1.多态
多态:不同的对象调用同一函数,展现不同的形态,满足多态的函数调用是根据对象的虚函数表,虚函数表是编译时确认
静态绑定(早绑定),在程序编译间确定程序行为,静态多态,比如函数重载
动态绑定(晚绑定),在程序运行期间根据具体的类型确定程序的具体行为,调用具体的函数。多态
含有虚函数的类对象都会有一个虚函数表,其子类也会有一个,如果子类不含有其他虚函数,则基类和子类虚函数表相同(内的虚函数地址不同)
在编译是,在初始化构造函数时会生成一个虚函数指针,满足多态时,会根据指针找到对应对象虚函数表,然后在表内找到对应的虚函数地址,访问这个虚函数
通过加作用域,使得函数在编译时就绑定