C++中this指针的作用以及用法详解
来源:互联网 发布:sql索引超出数组界限 编辑:程序博客网 时间:2024/06/07 03:48
为什么引用this指针?
当我们在类中定义了一个变量,同时又在类成员函数中定义了同一个变量时,也就是变量名重复时,但是我们要想使用类中的定义的变量,此时就需要this指针了。
1.this指针的作用
指针存在于类的成员函数中,指向被调用函数类实例的地址。
一个对象的this指针并不是对象本身的一部分,不会影响sizeof()的结果。
this指针的作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。换句话说就是,及时你没有用this指针,编译器在编译的时候也会自动加上this的,它是一个隐含形参,对各成员的访问均通过this进行。
2.this指针的使用
(1)在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;
(2)当参数与函数成员变量名相同时,应使用 this.age = age;
3.this指针的特点
(1)this指针只能在成员函数中使用
全局函数,静态函数都不能使用this指针,其实,成员函数的第一个默认参数是 *const this
例:class Student()
{
int fun(int x)
{
}
};
函数fun(int x)的原型在编译器看来就是 fun(Student *const this ,int x)
(2)this 指针在成员函数的开始前构造,在成员函数的结束后清除,生命周期和其他函数参数一样。当调用一个类的成员函数时,编译器将类的指针作为函数的this参数传递进去。
如:Student stu;
stu.fun(3);
此时编译器会编译成:
Student::fun(&x,3);
(3)this指针会因编译器不同而有不同的放置位置。可能是栈,也可能是寄存器,甚至全局变量。
在汇编级 别里面,一个值只会以3种形式出现:立即数、寄存器值和内存变量值。不是存放在寄存器就是存放在内 存中,它们并不是和高级语言变量对应的。
- C++中this指针的作用以及用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- c++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- C++中this指针的用法详解
- LeetCode 11. Container With Most Water(Two-Pointer 详解)
- 例题28 UVa10891 Game of Sum(DP)
- Java笔记 - 线程间通讯- 等待唤醒机制
- Uva 1411 ants(KM算法--二分图最佳完美匹配)
- 随机数递增排序
- C++中this指针的作用以及用法详解
- BITCS2016程序设计 | 10. 琪露诺的完美算数教室——⑨的统计I
- 入栈的Activity由于系统资源不足被被回收了怎么办
- 大白话解析模拟退火算法
- Android开发: View - 自定义
- where T : class 泛型约束
- 疯狂了!当游戏爱上MongoDB会怎么样???
- <二> u-boot 的烧写及使用
- 微众银行笔试--java开发