(一一七)this指针
来源:互联网 发布:布鲁克大学 知乎 编辑:程序博客网 时间:2024/05/16 12:00
所谓this指针,是一个指针,且这个指针用于类函数定义内部,指向当前对象(的地址)。
this指针的特点:
①只能用于类定义内部;
②使用方法同结构指针,即使用运算符“->”;
③指向的是当前对象,即对象a使用这个类方法,其this指针指向的是对象a;
④this->私有成员 这个在大多数情况下,和只用私有成员效果是一样的,但是若参数名和私有成员名相同,那么这种表示方法表示的是当前对象的私有成员,而同名参数表示的是参数的值。
如代码:
#include<iostream>#include<string>class man{private:std::string name;int a;public:man(char* x="no name",int b=0){name = x;a = b;}void bigger(int a)const{std::cout <<(this->a > a ? this->a : a) << std::endl;//使用?:运算符}man less(const man& b)const//引用一个类对象,分别输出。返回引用{std::cout << "-----------" << std::endl;std::cout << name << ": " << a << std::endl;std::cout << this->name << ": " << this->a << std::endl;std::cout << b.name << ": " << b.a << std::endl;std::cout << "-----------" << std::endl;if (this->a > b.a)return *this;//注意,如果是返回的是引用,那么返回的引用也应该是被const限定(因为函数的私有对象被限定了)else return b;}void show()//输出{std::cout << name << ": " << a << std::endl;}};int main(){man a{ "aaa",5 };man b = { "bbb",10 };a.bigger(20);//调用a的方法,和参数比较,输出大的数字man c = a.less(b);//声明一个新对象,是调用对象a的方法的返回值c.show();//输出新对象system("pause");return 0;}
输出:
20-----------aaa: 5aaa: 5bbb: 10-----------bbb: 10请按任意键继续. . .
总结:
①表示当前对象时,使用 *this
②表示对象中的某个私有成员时,使用 this->私有成员名 或 私有成员名 ;
③当名称冲突时,使用this表示的是当前对象的私有成员,使用名称表示的是冲突的另一个(例如参数名)(见函数void bigger(int a)const);
0 0
- (一一七)this指针
- C++学习笔记(七):this指针详解
- this指针(C++)
- (七)指针
- (七)多级指针
- Pro Android学习笔记(一一七):Location(3):获取位置更新
- (一一七)基本文件操作 -SDWebImage清除缓存 -文件夹的大小计算
- this指针(C++ primer)
- this指针(待完善)
- this指针说明(c++)
- C++(9):this指针
- 《c和指针》(七)
- js(七)---关于this的问题
- this指针
- this指针
- this指针
- this指针
- this指针
- 移除未排序链表中的重复结点
- python3 crontab 下运行python输出中文失败
- hypervisor on vehicle
- MonoBehaviour继承类及其重要方法
- http servlet服务器和android客户端(二)第一个android客户端
- (一一七)this指针
- (一一八)对象数组
- 学习java的道路
- (一一九)类作用域
- 动态规划-最大子矩阵和
- (一二〇)抽象数据类型
- 疾病尚需用猛药
- (一二一)第十章复习题
- 碰撞器,,