2021—研一学习笔记 day7

本文介绍了C++中的this指针及其作用,详细讲解了this如何在非静态成员函数中引用类对象本身,并讨论了const成员函数与this指针的关系。此外,还探讨了内联函数的原理,包括内联函数的优势、适用场景及内联函数的实现过程。
摘要由CSDN通过智能技术生成

2021-3-19 第七天

C++内容学习

Github->CplusPlus->一、基础进阶

网址: github.com/Light-City/CPlusPlusThings/blob/master/README.md

代码环境:Ubuntu 18.04
编译器:gcc/g++

一、基础进阶

三)this

this作用域在类内部
当在类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。

对各成员的访问均通过this进行

this指针的使用:
在类的非静态成员函数中返回类对象本身时,使用return *this
当参数与成员变量名相同时,写作:this->n=n

this是一个const指针(指针常量),只能指向一个地址(类本身)

如果成员函数声明为const,则this本身与它指向的成员值都不能改变
这时this会被解析为:const A * const this

#这也是在类中使用const成员函数的原因:不改变成员值。

四)inline

1、类中内联

类中的函数是隐式内联函数
想成为内联函数,必须在实现处(定义处)加inline

编译器对inline函数的处理步骤:

  • 将inline函数体复制到inline函数调用点处
  • 为所用inline函数中的局部变量分配内存空间
  • 将inline函数的输入参数和返回值映射到调用方法的局部变量空间中
  • 如果inline函数有多个返回点,将其转变为inline函数代码库末尾的分支

内联能提供函数效率,但并不是所有函数都定义成内联函数

内联函数以空间换时间,省去函数调用的开销,从而提高函数的执行效率

以下函数不适合用内联:
如果函数体内代码较长,内联将导致内存消耗代价比很高
如果函数体内出现循环,那么执行函数体内代码的时间要比函数调用开销大。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值