this指针
指针 this
2023-09-14 08:56:53 时间
首先,我们都知道类的成员函数可以访问类的数据(限定符只是限定于类外的一些操作,类内的一切对于成员函数来说都是透明的),那么成员函数如何知道哪个对象的数据成员要被操作呢,原因在于每个对象都拥有一个指针:this指针,通过this指针来访问自己的地址。
注意:
1、this指针并不是对象的一部分,this指针所占的内存大小是不会反应在sizeof操作符上的。this指针的类型取决于使用this指针的成员函数类型以及对象类型,
2、this只能在成员函数中使用。全局函数,静态函数都不能使用this。
3、this在成员函数的开始执行前构造的,在成员的执行结束后清除。
4、this指针只有在成员函数中才有定义。在全局变量和静态函数中不能使用
#include <iostream> #include <memory> using namespace std; class test1 { public: test1() { }; ~test1() { }; int GetNum() { //this是指向当前test1这个类的指针,this指针也可以用来初始化变量 this->a = 10; this->b = 0; return (*this).a; } //私有变量可以被类内的所有成员函数调用 private: int a; int b; }; int main() { { test1 p1; cout << p1.GetNum() << endl; } system("pause"); return 0; }
参考博客:https://www.cnblogs.com/zhangruilin/p/5769843.html
相关文章
- C++ this指针
- 指针初始化
- C语言:定义一个指针字符串,统计英文字母、空格、数字和其他字符的个数,要求使用函数完成。
- C++基础——C++面向对象之类、对象与继承基础总结(类和对象概念、构造函数与析构函数、this指针、继承)
- 【C语言进阶】“数组指针”和“指针数组”都是啥跟啥?
- 循环队列出队-单个指针下循环链表的入队与出队
- Rust学习笔记Day17 智能指针之Box<T>
- 双指针算法模板及练习
- 【C 语言】数组 ( 数组取值操作 | array[i][j] 用法 等价于 *( *(array = i) + j ) 用法 | 下标操作到指针操作演化过程 )
- 【C 语言】结构体 ( 结构体中嵌套二级指针 | 为 结构体内的二级指针成员 分配内存 | 释放 结构体内的二级指针成员 内存 )
- [编程] C语言结构体指针作为函数参数详解编程语言
- Go语言圣经-指针对象的方法-bit数组习题详解编程语言
- ABAP指针详解编程语言
- 数组和指针的关系(区别)详解
- JS this指针深度剖析
- 你必须知道的Javascript知识点之"this指针"的应用
- 基于指针pointers和引用references的区别分析
- C++基础之this指针与另一种“多态”
- 基于指针的数据类型与指针运算小结
- 深入解析C++中的指针数组与指向指针的指针
- 智能指针与弱引用详解
- C++中给二维指针分配内存(实现代码)
- 对JavaScript中this指针的新理解分享