栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

关于this指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于this指针

C++ 编译器里给每个 “ 非静态的成员函数 “ 增加了一个隐藏的 指针参数 ,让该指针指向当前对象 ( 函数运行时调用该函数的对象 ) 在函数体中所有 “ 成员变量 ” 的操作,都是通过该 指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成 。 该指针参数即为this指针
this指针的功能:即在非静态成员函数调用时,可以更准确的访问到实例化对象中的成员属性 this指针的类型:类的类型* const,const直接修饰指针本身,即this指针本身的指向不能被改变 非静态成员函数不具备该隐藏参数(this指针),因为静态成员函数并不具体属于哪个对象,故其没有指向某个对象的this指针

this指针本质上是非静态成员函数的第一个形参(被隐藏的),当对象调用成员函数时,才将对象地址作为实参传递给“this”形参,所以对象中并不存储this指针。

ps:一般情况下(在vs环境下)是由编译器通过ecx寄存器自动传递,无需用户传递

由于this指针是作为实参传递的,所以this指针都是存储在栈空间中。

当非静态成员函数被调用时,如果函数内部并不涉及到对象内的具体成员属性则this指针可以为空,即“this = nullptr”

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1022861.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号