千家信息网

C++this指针怎么理解

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,C++this指针怎么理解,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。还是Stock股票这个类,假设我们要实现一个方法,比较一下当前股
千家信息网最后更新 2024年11月11日C++this指针怎么理解

C++this指针怎么理解,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

还是Stock股票这个类,假设我们要实现一个方法,比较一下当前股票和传入的股票, 返回价格高的那个股票。在我们实现的时候,会遇到一点问题。

const Stock & Stock::topVal(const Stock &s) const {    if (s.total_val > total_val) {        return s;    }else {        return ????;    }}

这段代码当中有一些问题,我们一个一个来说。

首先说函数签名,前面都没有问题,问题出现在签名末尾的const。这是我们第一次在函数的末尾看到const,这个用法只能用在类或结构体的成员函数中,而不能用在普通函数里。

它表示这个函数不会修改任何成员变量的值,末尾加上const的函数称为常量成员函数。

常量函数有一些特殊的性质:

能被任何函数调用,只能调用常量函数
能被任何对象调用,但const对象只能调用const函数
性质不是非常复杂,但有些像是绕口令,需要从const常量的性质角度出发理解一下。

代码当中第二个问题就是一堆问号的地方,这里我们想要return当前对象,但是我们不知道如何表示。为了解决这个问题,C++当中创建了一个特殊的指针叫做this,它用来指向调用成员函数的对象,也就是当前对象。

所以有了this之后,这段代码可以写成:

const Stock & Stock::topVal(const Stock &s) const {    if (s.total_val > total_val) {        return s;    }else {        return *this    }}

另外,this指针也可以拿来访问当前对象当中的成员变量,比如我们想要访问当前的total_val,可以写成this->total_val,我们直接用total_val本质上是一样的,是编译器替我们做了优化。

看完上述内容,你们掌握C++this指针怎么理解的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

函数 问题 对象 成员 指针 常量 股票 代码 性质 方法 末尾 特殊 内容 变量 更多 复杂 普通 束手无策 为此 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 亲爱的热闹的网络安全大赛 查询数据库订单商品总金额 测试服务器接口图解 一个网络安全公司需要多少人 计算机网络技术笔记免费下载 cad怎么关闭连接服务器 浙江gps网络时间服务器地址 数据库哪个专业比较好 梦幻西游天科人数最多的服务器 双十一网络安全演讲稿学生 网络安全审查办法何时出台 大学生软件开发的创业计划书 数据库视图查询功能 学习软件开发应用 数据库参考代码 数据库怎么引用另一个表的数据 中山大学计算机网络技术 网络安全加密龙头 软件开发项目怎么排期 哈佛全脑数据库的特点 2网络技术发展前景分析 cad怎么关闭连接服务器 信阳服务器机柜厂家 徐云锋网络安全学院 保驾护航网络技术有限公司 软件开发系统集成属于什么行业 新友财务软件数据库 sugon服务器安装 软件开发是否需要资质 系统无法与服务器建立安全连接
0