可以看到方法中不再需要手动传入对象引用了。 UART_Obj_TypeDef UART_Debug_Obj;//实例化对象staticUART_Obj_TypeDef *mthis = &UART_Debug_Obj;//this指针实现对象引用 这样就利用static文件的作用域实现为每个bsp对象实现一个this指针效果。 //将数据放入缓冲区UART_Debug_Obj.BufAppend(res);//清空缓冲区UART...
在这一章中,我们将探讨 C++ 中this指针的存储方式和传递机制。this指针是 C++ 对象导向编程中的一个关键概念,用于指向成员函数所操作的对象。我们会从它的基本概念开始,逐步深入到它的存储和传递过程中。 1.1this指针的基本概念 this指针是 C++ 中的一个特殊指针,它在每个非静态成员函数内部可用。这个指针指向了调...
this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行。 例如,调用date.SetMonth(9) <===> ...
在C 语言中,并没有 “this” 指针这个概念 然而,在 C++ 语言中,“this” 指针是一个特殊的指针,它在类的成员函数中被隐式使用,以指向调用该成员函数的对象。“this” 指针的主要作用如下: 访问调用对象的成员变量:当成员函数需要访问调用对象的成员变量时,可以通过 “this” 指针来实现。 解决名称冲突:当成员...
正如Stroustrup所说的,“ this”可能是指针的引用,但是在C ++的早期版本中没有引用。如果将“ this”实现为参考,则可以避免上述问题,并且比指针更安全。 以下是使用“ this”指针的情况: 1)当局部变量的名称与成员的名称相同时 输出: x = 20 对于构造函数,当参数名称与成员名称相同时,也可以使用initializer list...
this指针作为面向对象中的重要机制,可以指向当前对象自己的属性和方法。在之前的C语言实现面向对象的专栏中,this指针仅仅采用了一个公用的全局变量来存储,这种设计方法不仅在多处理机多线程环境下会产生问题,甚至在单处理机环境下也会导致问题(中断)。举个例子:extern v
类的友元函数都有this指针 C. 任何与类相关的函数都有this指针 D. 类的非静态成员函数都有this指针 相关知识点: 试题来源: 解析 D 正确答案:D 解析:this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。另外,全局函数和静态函数都...
this是一个指向对象自身的指针。举个例子:class Test { int i, j;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...
再考虑一下C++的this指针,一个类中的成员函数,依据this指针来区分不同的对象,也就是说根据this指针实现了访问不同的对象的成员变量。 这是否也是多态的一种表现?这里所说的多态已经不是那个“父类指针指向子类对象”的教条了,而是体现在同一个类的不同对象之间,调用同一个成员函数,依据参数“this指针”来实现访...
this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。 所谓当前对象,是指正在使用的对象。例如对于stu.show();,stu 就是当前对象,this 就指向 stu。 下面是使用 this 的一个完整示例: #includeusing namespace std; ...