bycj.net
当前位置:首页 >> this指针的使用 >>

this指针的使用

楼上的回答的很好,另外加一点,对于非静态成员函数,他有一个隐含的参数就是this指针.所以如果有A::b(int,int)这个函数,系统调用时,其实会这样调用b(int,int,this),其中this就是指向A类的一个对象的指针.static成员函数是没有隐含this指针这个参数的,原因是static函数是类的函数,与类的具体对象无关,所以自然不会传this指针给这种类型的函数.

this变量代表对象本身 当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量.使用this简化构造函数的调用.一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝,尽管在内存中可能有多个对象,而数据成员在类的每个对象所在内存中都存在着一份拷贝.this变量允许相同的实例方法为不同的对象工作.每当调用一个实例方法时,this变量将被设置成引用该实例方法的特定的类对象.方法的代码接着会与this所代表的对象的特定数据建立关联.

1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果.this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数

书上说的是:实际上【编译器】将在调用Talk时嵌入this指针,即Talk(this,"Bla bla"), .就是,上面的代码,【编译器】在编译的时候,实际上把你的代码修改如下,然后再编译的.class Human { private: void Talk(Human* const p, string

this 是说的当前的类中.的 如this.a是说本类中的a

this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数.也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问均通过this进行.

意义: this的意义是默认指针,指向this存在的那个类. 用法: 如: class point { public: point(float x,float y) { this->x=x; //this->x 表示private中声明的 x;x 表示构造函数point(float x,float y)中的 x. this->y=y; //this->y 表示private中声明的 y;y 表示构造函数point(float x,float y)中的 y. } private: float x,y; }

this指针在类的非静态成员函数里面才能使用,main函数里是不能使用的!

this指针是类的一个自动生成、自2113动隐藏5261的私有成员,它存在于类的4102非静态成员函数1653中,指向被调用函数所在的对象.全局仅有一个this指针,当一个对象被创建时,this指针就存放指向对象数据的首地址.根据以下程序来说

就是表示类成员的函数时候要用this,当然别的用法还挺多,就给你举一个例子吧:class b{public: void a(Int c){this-c = c} // 在这里,this表示是这个类声明的int类型的c .private: int c;}当然这个知识this的一个用法.具体你可以去 http://baike.baidu.com/view/626297.htm?fr=ala0_1.这里比较详细.其实我还是建议认真看看c++的书,一般都有很详细的介绍.

网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com