this指针的作用是让对象能够在成员函数中引用自己的数据成员,从而实现对对象的操作。一般来说,this指针在成员函数中经常用于在参数名和成员名相同的情况下加以区分。此外,this指针的使用还能够实现对象的自引用,即成员函数可以通过this指针调用其他成员函数或访问其他成员变量。
“this” 指针的主要作用如下: 访问调用对象的成员变量:当成员函数需要访问调用对象的成员变量时,可以通过 “this” 指针来实现。 解决名称冲突:当成员函数的参数名称与成员变量的名称相同时,可以使用 “this” 指针来区分它们。 返回调用对象的引用:当成员函数需要返回调用对象本身时(例如,实现链式操作),可以通过 “...
this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。 例如,调用date.SetMonth(9) <===> ...
这样就利用static文件的作用域实现为每个bsp对象实现一个this指针效果。 //将数据放入缓冲区UART_Debug_Obj.BufAppend(res);//清空缓冲区UART_Debug_Obj.ClearBuf(); 多个同类bsp方案 对于多个同类bsp方案,有一个最大的缺点,只要涉及到多线程,或是中断,就是会有线程安全的风险,因为使用的偏移变量是全局变量。 /...
一、this指针的概念和作用 在C++中,this是一个特殊的指针,它指向当前对象的地址。this指针可以访问当前对象的成员变量和成员函数,主要用于区分同名变量和实现对象之间的交互。 1.1 this指针的定义 在类内部,不管是成员函数还是成员变量,都可以通过使用this来访问当前对象。this指针被隐式地传递给每一个非静态成员函数,...
(1)从图1可以发现this指针通过ECX寄存器,传递给了成员函数。this指针就是对象的地址。 图1 Main函数 (2)从图 2可以发现访问对象的成员变量用的就是之前通过ECX传入的this指针。 图2 show()函数 三、深入理解 通过截图及相关的资料,可以很清晰的知道在调用构造函数、show()函数之前的那个ECX就是this指针,也就是...
this指针可以被用来检测对象自身的状态或者是实现自引用的功能,比如在复制构造函数中防止自我复制。 2.2 编译器层面的this指针优化 现代编译器在处理this指针时进行了多种优化,以提高代码的运行效率和减少内存占用。 2.2.1 内联函数与this指针 当成员函数被编译器内联时,this指针的传递可以被完全优化掉。在内联函数中...
“ this”指针作为隐藏参数传递给所有非静态成员函数调用,并且可用作所有非静态函数主体内的局部变量。“ this”指针在静态成员函数中不可用,因为可以在没有任何对象(带有类名)的情况下调用静态成员函数。 对于X类, this指针的类型为'X *'。另外,如果X的成员函数声明为const,则此指针的类型为'const X *' ...
String.c文件:static String this=NULL;List.c文件:static List this=NULL;通过static关键字修饰后,不同C文件中定义相同名字的全局变量不会报错,且这些全局变量作用域仅在自己的C文件中 这样就解决了每个模块私有访问自己的this指针的问题。 如何保证在多线程或中断环境下,this指针仍能保证线程安全,下面来解决第二个...