问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++ this指针的目的是什么?

发布网友 发布时间:2022-04-29 11:22

我来回答

3个回答

热心网友 时间:2022-04-24 09:52

哎,这些东西如果一说就复杂了。

是这样的,其实不管C语言还是C++语言,最后编译成机器码并没有什么本质的区别,所谓类,虽然在语言这个层面有了一个概念性的解释(相同属性相同操作的集合的抽象化),但是实际上在二进制的表示和结构上没有什么本质的区别,都是一个内存区域保存了一些值。那这样一来,就可能使得程序员跨过一个类的*(比如应该只能访问自己的成员,但是你想办法访问了其他对象的成员)。

所以C++在设计的时候就隐含了一个this指针,这个指针主要是用于保证你的访问不能跨界和用于区分不同的对象。举个例子,你的任何一个函数的申明实际隐含了一个this指针参数,这个参数你不可见,也不可编辑,是编译器自动添加上去的,为什么要这样?实际上对象在实例化的时候,体积是非常小的,并没有每一个对象都保存函数,同一个类的对象的函数实际上只有一份副本(二进制层面),那如何来区分到底是谁调用了函数?就是这个this指针。

this指针实际是指向了对象的内存地址起始值,所以通过一个偏移量,就知道了对象的各种属性(变量),也就确定了一个绝对的对象。当然在对象的函数操作里我们可以显示的用this->的方式来引用变量,但是你也发现你即使不加上this指针,它依然知道你引用了谁,其实就是隐含了一个参数this指针。

为了进一步理解,想一下static修饰的函数有什么区别,为什么static函数只能访问static修饰的属性?因为static修饰的函数就没有传递这个this指针,所以它不知道你指的是哪一个对象。而实际上,static修饰的符号就和C语言的全局变量和函数无区别了。

热心网友 时间:2022-04-24 11:10

一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。

例如,调用date.SetMonth(9) <===> SetMonth(&date, 9),this帮助完成了这一转换 .

热心网友 时间:2022-04-24 12:45

指向当前对象本身!
为什么c++中有个固定名字的指针,叫this,难道叫其他的名字不行吗?

这个指针是编译器在编译是指定的内部指针,主要作用是指向类本身,如果自己写编译器的话就可以改名字了。

this指针存在的目的是( )

this指针存在的目的是(B、保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码)一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数...

C++this指针详解

总结来说,this指针是C++中用于区分不同对象成员函数引用的关键元素。通过this指针,成员函数能够访问并操作特定对象的数据成员,实现不同对象间的区分与操作。使用this指针时,程序员应正确理解其作用,确保代码逻辑的准确性和效率。

c++ this指针的目的是什么?

所以C++在设计的时候就隐含了一个this指针,这个指针主要是用于保证你的访问不能跨界和用于区分不同的对象。举个例子,你的任何一个函数的申明实际隐含了一个this指针参数,这个参数你不可见,也不可编辑,是编译器自动添加上去的,为什么要这样?实际上对象在实例化的时候,体积是非常小的,并没有每一...

this指针的作用是()。

this指针的作用是()。A.保证基类公有成员在子类中可以被访问 B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码 C.保证基类保护成员在子类中可以被访问 D.保证基类私有成员在子类中可以被访问 正确答案:B

【C/C++ 基础知识】this指针是如何存储的?

this 指针可以被用来检测对象自身的状态或者是实现自引用的功能,比如在复制构造函数中防止自我复制。现代编译器在处理this 指针时进行了多种优化,以提高代码的运行效率和减少内存占用。当成员函数被编译器内联时,this 指针的传递可以被完全优化掉。在内联函数中,成员访问可以直接转化为对相应对象成员的...

c语言调试窗this是什么意思

this 指针通常指向当前运行程序的入口。在C++中this指针通常指向当前运行的实体(对象)。

程序员可以随意修改this指针的值

不可以。在C语言中,this指针是一个隐含的指针,指向当前对象本身。this指针是在编译期间自动生成的,指向当前调用成员函数的对象地址,是一个常量指针,不能被修改。如果程序员尝试修改this指针的值,编译器会报编译错误。因此程序员不能随意修改this指针的值,否则会导致程序出错。

C++中的this表示什么意思?

this是指向类或者结构体本身的指针,并且不可以改变。this就是指向本身的类或结构体的变量。如 class A { void Fun(int a){ cout&lt;&lt;this-&gt;a&lt;&lt;endl;cout&lt;&lt;(*this).a&lt;&lt;endl;} int a;} 这样显示的就是类的成员变量a,而不是传入的参数a ...

this指针是什么意思?

是指向当前对象的指针,它只是被固定下来的(被C++开发商定义成那样的,这个指针经常用到,所以就直接固定死它,它是一个默认影藏起来的指针)用来指向你正在编辑的 类 将产生的对象;还不明白的话:include"iostream.h"class A { private:int x;public:A(int x);};A::A(int x){ this-&gt;x=x...

this指针指向什么 this指针有什么用 什么叫this指针 c中的this指针 this指针的概念和作用 this指针的例子 c++this指针 this指针类型 this指针作用
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
过敏性鼻炎会引起扁桃体发炎吗 过敏性鼻炎会导致扁桃体炎吗 想要一辆7座suv15万上下选那个好,s7质量怎么样 Outlook每次打开时都提示要求输入凭据用户名密码的解决办法outlook自带... 30周早产儿一般多重 《怪物猎人世界冰原》哪个大剑好:《冰原》哪种大剑更强? 人员统筹范围内转入和人员续保 早产保温箱通常多少钱一天 2016世界百大足球巨星 仅使用三相电漏电保护不接零线可以吗? c++this指针详解 解释下this指针 什么是this指针,它有何作用 ? 弱弱问一下,硬盘从电脑中取出后再装上去会有什么影响吗? 的this指针是什么意思 电脑硬盘能否拆下来拿去重装系统? 什么是this指针,它有何作用 硬盘拆掉再装上对数据有影响吗? c++中什么是this指针?它的作用是什么? 拿自己的硬盘到其他电脑上使用会不会对硬盘里的系统有影响? this 指针的作用 我把笔记本电脑的硬盘拆下来去维修,维修好了再装上,会有什么影响吗? this指针指的是什么 电脑副硬盘拆下来会有什么影响 this指针是什么意思? this指针的作用是什么?简单易懂些 笔记本的硬盘取下来以后再插上系统会没有吗 电脑的硬盘从电脑上拆下来,过两天在装上,对电脑应该不会有什么影响吧 不知道有没有理解错this指针的概念? 给老公浪漫的生日祝福语 C++中this指针有什么用? java/c++里的this-&gt;和this.有什么不同 如何把word里做的图光图复制出来没有背景 怎么复制图片不带背景颜色 华晨汽车破产重整后,原董事长突然被查,这背后有什么故事? 轿辰集团是什么性质的公司 上市公司董事长被抓了,怎么由下面的董事接替董事长??开董事会??着急 在线等!! 董事长被判刑后公司怎么处理 公司成立了,没有运营之前挂名三个月法人,又没有股份。三个月后想变更法人又一直找不到董事长。怎么办? 开氏集团董事长项兴良怎么了? 蓝翔董事长前妻出狱后又被带走,荣兰祥如此狠心,是有外遇了吗? 股份制公司法人和董事长突然辞世,怎么变更法人和董事长 西游洞董事长杨学银的家庭情况怎么样 总经理怎么架空董事长 覃泽宇(国视农董事长)的人品怎么样? 梦见好多苍蝇蚊子在蚊帐里咬我儿子好吗 怎样才有资格叫董事长 公司副董事长是怎么任命的?是由董事会任命的吗? 梦见蚊子、苍蝇咬自己,打死一个又一个,膀子上被苍蝇叮咬出血了,后被我打死 《壮志高飞》夏董事长怎么死的?