博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
More Effective C++ (静态绑定与动态类型)
阅读量:4554 次
发布时间:2019-06-08

本文共 481 字,大约阅读时间需要 1 分钟。

当你有一个对象的指针,而对象实际是该指针类型的派生类(例如:一个 Vehicle*指针实际指向一个Car 对象)。

由此有两种类型:指针的(静态)类型(在此是Verhicle),和指向的对象的(动态)类型(在此是Car)。
(1)静态类型 
  意味着成员函数调用的合法性被尽可能早地检查:编译器在编译时,编译器用指针的静态类型决定成员函数调用是否合法。

如果指针类型能够处理成员函数,那么指针 所指对象当然能很好的处理它。

例如,如果 Vehicle 有某个成员函数,则由于Car是一种Vehicle,那么Car 当然也有该成员函数。

(2)动态绑定
意味着成员函数调用的代码地址在最终时刻才被决定:基于运行时的对象动态类型。

因为绑定到实际被调用的代码这个过程是动态完成的(在运行时),所以被称为“动态绑定”。

动态绑定是虚函数导致的结果之一。

 

Good Good Study, Day Day Up.

顺序  选择  循环  坚持

转载于:https://www.cnblogs.com/Braveliu/archive/2013/01/06/2847775.html

你可能感兴趣的文章
What Are You Talking About HDU - 1075(字典树)
查看>>
Phone List HDU - 1671(字典树)
查看>>
I Hate It HDU - 1754(线段树找区间最大值)
查看>>
牛客假日团队赛11 H 过河卒(路径条数dp)
查看>>
P3374 树状数组 1(单点修改求和)
查看>>
敌兵布阵 HDU - 1166 (线段树单点修改)
查看>>
WIN10安装.net报0x800F081F解决方法
查看>>
Win10删除或是不显示快速访问中最近使用文件记录
查看>>
Dell T30解决报Alert! Cover was previously removed.
查看>>
win10开机后将存在多个系统选择,改为直接进入系统无需选择
查看>>
word生成目录的pdf
查看>>
VMware网络配置三种网络模式(桥接、NAT、Host-only)
查看>>
SVN 执行cleanup报错:Cleanup failed to process the following paths
查看>>
linux-centos7.6设置固定IP网络方法
查看>>
Visual Studio 2013进行python开发(一)---开发环境配置
查看>>
Visual Studio 2013进行Python开发(二)---python连接sql server数据库
查看>>
Visual Studio 2013进行Python开发(三)--多表联合查询
查看>>
微信小程序后台服务的发布
查看>>
用户 'IIS APPPOOL\DefaultAppPool' 登录失败
查看>>
kafka producer serializer序列化(六)
查看>>