在C 语言中,并没有 “this” 指针这个概念 然而,在 C++ 语言中,“this” 指针是一个特殊的指针,它在类的成员函数中被隐式使用,以指向调用该成员函数的对象。“this” 指针的主要作用如下: 访问调用对象的成员变量:当成员函数需要访问调用对象的成员变量时,可以通过 “this” 指针来实现。 解决名称冲突:当成员...
this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。 例如,调用date.SetMonth(9) <===> ...
从这个简单示例中可以看出,在成员函数内部使用this指针可以准确地访问当前对象的成员变量。 二、this指针的意义和重要性 2.1区分同名变量 在某些情况下,类的成员变量和局部变量可能具有相同的名称,此时可以通过使用this指针来准确定位到类成员。这种情况下,this指针起到了一个重要的标识作用。
public:void set(int a, int b){ this->i = a;//将调用该函数的对象中的成员i 赋值为a this->j = b;//将调用该函数的对象中的成员j 赋值为b } };int main(){ Test t;t.set(10, 20);//这时set函数中的this就是指向t的指针,相当于this=&t;} ...
参照上面的流程可知,this指针产生数据一致性问题的本质原因是没有做到在函数调用时保存现场,在线程任务中或中断函数中产生对象函数调用则将当前对象指针压入This栈中,在调用对象方法时,第一行用于从This栈栈顶弹出自身对象,此时栈顶指针将指向上次的this指针,通过这种方式即可实现this指针的独立性。
第一章:this指针的存储与传递 在这一章中,我们将探讨 C++ 中this指针的存储方式和传递机制。this指针是 C++ 对象导向编程中的一个关键概念,用于指向成员函数所操作的对象。我们会从它的基本概念开始,逐步深入到它的存储和传递过程中。 1.1this指针的基本概念 ...
所谓的this指针可以简单理解为编译器帮我们把对象引用传递到方法中了。 单一bsp方案 此单一bsp意为板子上只有这一个外设,所以这个bsp对象只需要一个this指针,以uart举例 typedefstruct_UART_OBJ_TYPEDEF{//属性struct_PrivateAttr{uint16_tBuf_Cnt; UART_HandleTypeDef UARTxHandler; ...
在C 语言中,没有类和对象的概念,因此也没有 this 指针。this 指针是 C++ 中的一个关键字,它表示指向当前对象的指针。然而,如果你想在 C 语言中实现类似于面向对象编程的功能,可以使用结构体(struct)和函数指针。这种方法被称为“C 语言的面向对象”或“C 语言的结构体方法”。在这种方法中,你可以将一个...
“ this”指针作为隐藏参数传递给所有非静态成员函数调用,并且可用作所有非静态函数主体内的局部变量。“ this”指针在静态成员函数中不可用,因为可以在没有任何对象(带有类名)的情况下调用静态成员函数。 对于X类, this指针的类型为'X *'。另外,如果X的成员函数声明为const,则此指针的类型为'const X *' ...
经过细心的比较就可以发现,call行代码的本质区别:类CNullPointCall的成员函数中用到了this指针。对于类成员函数而言,并不是一个对象对应一个单独的成员函数体,而是此类的所有对象共用这个成员函数体。当程序被编译之后,此成员函数地址即已确定。而成员函数之所以能把属于此类的各个对象的数据区别开,就是靠这个this指针...