This 指针
来源:互联网 发布:淘宝卖家客服人工服务 编辑:程序博客网 时间:2024/06/07 16:00
不管C语言还是C++语言,最后编译成机器码并没有什么本质的区别,所谓类,虽然在语言这个层面有了一个概念性的解释(相同属性相同操作的集合的抽象化),但是实际上在二进制的表示和结构上没有什么本质的区别,都是一个内存区域保存了一些值。那这样一来,就可能使得程序员跨过一个类的限制(比如应该只能访问自己的成员,但是你想办法访问了其他对象的成员)。
所以C++在设计的时候就隐含了一个this指针,这个指针主要是用于保证你的访问不能跨界和用于区分不同的对象。举个例子,你的任何一个函数的申明实际隐含了一个this指针参数,这个参数你不可见,也不可编辑,是编译器自动添加上去的,为什么要这样?实际上对象在实例化的时候,体积是非常小的,并没有每一个对象都保存函数,同一个类的对象的函数实际上只有一份副本(二进制层面),那如何来区分到底是谁调用了函数?就是这个this指针。
this指针实际是指向了对象的内存地址起始值,所以通过一个偏移量,就知道了对象的各种属性(变量),也就确定了一个绝对的对象。当然在对象的函数操作里我们可以显示的用this->的方式来引用变量,但是你也发现你即使不加上this指针,它依然知道你引用了谁,其实就是隐含了一个参数this指针。
#include <iostream>
using namespace std;
class point
{
public:
int x,y;
point(int a,int b)
{
x= a;
y = b;
}
void input(int x,int y )
{
this->x= x;
this->y =y;
}
void output()
{
cout<<x<<y;
}
};
int main()
{
point a(5,5);
a.input(10,10);
a.output();
return 0;
}
- this指针
- this指针
- this指针
- this指针
- this指针
- this 指针
- this指针
- this指针----
- this指针
- this 指针
- This 指针
- this指针
- This指针
- this指针
- this指针
- this 指针
- this指针
- this指针
- XMG
- Mac os - idea 快捷键
- scala学习(4)——循环
- php命名空间里面的use关键字的理解
- uva 1424 (dp专组G题)
- This 指针
- 不同进制间的相互转换的理解
- 【EJB二】有状态SessionBean和无状态SessionBean
- XMG View随手指移动
- JAVA学习总结三
- 不定积分表示的原函数推导函数的奇偶性,周期性_20160428
- 积分无法积,用估值后再使用连续函数介值定理_20160430
- 如何在asp.net页面使用css和js
- linux调节屏幕亮度