C++侯捷学习笔记:关于Dynamic binding

谈谈CONST:

1、用在成员函数后,const只能用于类成员函数,不可用于全局函数。作用是:保证不改变类的成员变量。同时注意:常量对象只能调用常量成员函数,不可调用非常量函数。

2、const是属于函数签名的一部分。当成员函数的const和non-const版本同时存在,const object只能调用const版本,non-const只能调用non-const版本

关于THIS:

1、类成员函数都有一个隐藏的参数:this指针。哪个对象调用这个函数,this指针就指向哪个对象。通过这一技术可以在子类调用父类的方法中调用子类独有的虚函数。

 

 动态绑定(dynamic binding):对象指针通过虚指针找到虚表,从虚表中查找对应的虚函数地址进行调用。

其中(*(p->vptr)[n])(p)是一个函数指针。参数是P。P是指向一个对象的指针(可使用this获取)。这段代码的意思是:从对象指针p获取虚函数表的虚指针vptr,vptr获取虚表中第n个虚函数的地址,将地址转换为指针形式,参数是对象指针p。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值