首页 > 代码库 > binding(联编)
binding(联编)
联编(Binding): 确定具有多态性的语句调用哪个函数的过程。
Static Binding (静态联编) : 在程序编译时确定调用哪个函数 例:函数重载
Dynamic Binding (动态联编) :在程序运行时,才能够确定调用哪个函数
用动态联编实现的多态,也称为运行时的多态
基类定义了虚同名函数,那么派生类中的同名函数自动变为虚函数(所以可以不加virtual关键字)
动态联编的开销比静态联编大;
Summary: static binding v.s. dynamic binding
基类与派生类中有同名函数
1. 通过派生类对象访问同名函数 -> 静态联编
2. 通过基类对象的指针访问同名函数(非虚函数) -> 静态联编
3. 通过基类对象的指针访问同名虚函数 -> 动态联编
其实,按我自己的理解,根本不需要分那么多的类别。在老师总结的情况当中,只有一种情况是动态联编:
那就是 1.存在override(请见之前的随笔)
2.基类的指针指向派生类对象/基类是派生类引用
3.‘2.’中的指针或引用调用‘1.’中的同名虚函数函数。
其他都是静态联编
binding(联编)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。