我是靠谱客的博主 伶俐早晨,最近开发中收集的这篇文章主要介绍C++中的类——this指针,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、什么是this指针

1、在类的方法内部可以使用this指针指向当前调用的对象。

二、this指针的属性及其实现方法

2、this是一个常亮指针,不允许改变this中保存的地址。

3、事实上,编译器为了实现this指针,会在成员函数的参数中自动添加一个this指针,并在函数调用时将对象自身的地址隐含作为实参传递给this。这样可以方便的用于对不同对象的数据成员或方法进行访问。

   详解:我们在操作某个对象时,一般会通过对象名加点运算符后跟该对象所属类中我们定义的方法来进行数据成员的访问和修改。我们通过对象名加点运算符实质上只能说明我们要操作的对象是该对象,但是方法是在类中定义的,它不属于某个对象。那么我们便需要一套机制来让该成员函数明确的知道暂时这个成员函数是“属于”某个对象的。所以这里引入了一个隐式的指针this,时刻提醒该函数“属于”该调用对象。即将对象的地址作为实参,传递给形参this指针,然后在需要用到数据成员的前面隐式的加上一个this->,实际上我们可以显式的将this->写出来,但是没有那个必要。

4、回顾之前的const成员函数。这时我们不难发现,const的作用是在修改this指针的类型,即将之前的顶层const(常量指针)改成既是顶层const也是底层const。

5、当一个成员函数调用另一个成员函数时,this指针在其中隐式的传递。比如,非常量成员函数内调用常量成员函数时,this指针将从指向非常量的指针转换成指向常量的指针。反过来,不能从指向常量的指针转换成指向非常量的指针,所以常量成员函数就不能调用非常量成员函数

三、使用this指针

6、我们无需使用this指针访问函数调用者的某个具体成员,而是需要把调用函数的对象当成一个整体来访问。

7、可以将解引用this指针(*this)作为成员函数的返回值。

   7.1、成员函数的返回值类型有如下另种情况:类类型和类类型的引用。

      7.1.1、如果返回类型是类类型的引用,则函数返回的是对象本身而非对象的副本,这时该函数可以是左值的。可以把一系列这样的函数连接在一条表达式中。

      7.1.2、如果返回类型是类类型,则函数返回的是对象的副本。

   7.2、如果是常亮成员函数,this将是一个指向常亮的指针,*this是这个常亮对象的引用即常亮引用,函数的返回类型也应该加上const限定符。这里需要注意,对象本身不一定是常亮,只是这里不允许改变对象的值。

最后

以上就是伶俐早晨为你收集整理的C++中的类——this指针的全部内容,希望文章能够帮你解决C++中的类——this指针所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部