静态联编和动态联编

将源代码中的函数调用解释为执行特定的函数代码块被称为函数名联编
静态联编:在C++中,由于函数重载的缘故,编译器必须查看函数参数以及函数名才能确定使用哪个函数。编译器可以在编译过程完成这种联编。在编译过程中进行联编被称为静态联编
动态联编:虚函数使得编译器必须生成能够在程序运行时选择正确的虚方法的代码,这种被成为动态联编

将派生类引用或指针转换为基类引用或指针被称为向上强制转换
例如:

BrassPlus op;
Brass *bp;
bp = &op;

向上强制传递是可传递的。即,如果从BrassPlus派声出BrassPlusPlus类,则Brass指针或引用可以引用Brass类对象、BrassPlus类对象或BrassPlusPlus对象

隐式向上强制转换使基类指针或引用可以指向基类对象或派生类对象,因此需要动态联编。

编译器对非虚函数方法使用静态联编
对虚方法使用动态联编

由于静态联编的效率的效率更高,因此被设置为C++的默认选择

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值