多态------静态联编与静态联编

静态联编和动态联编
(一)多态的分类(多态:父类的引用或者指针 指向子类对象)
静态多态:编译时期确定了调用函数地址,早绑定,静态联编;运算符重载,函数重载
动态多态:执行时期确定调用函数的地址,晚绑定,动态联编;父类虚函数,继承关系,且具有重写
(二)多态原理解析
(1)当父类中有虚函数时,内部结构就发生了变化,多了一个vfptr指针(前4个字节)指向自己的虚函数表;
(2)子类继承时,会继承vfptr 和 vftable(虚函数表),成为自己的虚函数表 。
(3)构造函数中,子类会将vfptr指向自己的虚函数表;
(4)子类若有发生重写,则替换自己虚函数表中的虚函数。
(三)多态的案例—计算器案例
开发原则—开闭原则(对扩展开放,对修改关闭)
利用多态实现,有利于扩展,结构性非常好。(底层设计成抽象类)
(四)抽象类(至少有一个纯虚函数)
抽象类不能被实例化;
若被继承,必须重写里面的纯虚函数;

发布了38 篇原创文章 · 获赞 13 · 访问量 4328

猜你喜欢

转载自blog.csdn.net/YanWenCheng_/article/details/103946999