在类中this是指向该类自己的指针,它是一个隐含的指针,编写程序的时候一般不用在意它,系统会自动为每个元素之前加一个this->。具体实例如下:
class A{
private;
int a,b;
public:
int add(int a,int b)
{ this->a=a;this->b=b; }/当要将参数传递过来的a、b赋值给类A中的属性a、b的时候就要用this->指定,否则参数传递过来的a,b不会赋值给类A中的 a,b,只是简单的变量自给己赋值即a=a;b=b其实类中每个变量或者函数前面都有一个隐含的this->,你可以写出也可以不写,但在特殊情况下一定要写出,就像上述的例子。/
}
在前面曾经提到过: 每个对象中的数据成员都分别占有存储空间,如果对同一个类定义了n个对象,则有n组同样大小的空间以存放n个对象中的数据成员。但是,不同对象都调用同一个函数代码段。
那么,当不同对象的成员函数引用数据成员时,怎么能保证引用的是所指定的对象的数据成员呢?假如,对于例96程序中定义的Box类,定义了3个同类对象a,b,c。
如果有avolume( ) ,应该是引用对象a中的height,width和length,计算出长方体a的体积。
如果有bvolume( ) ,应该是引用对象b中的height,width和length,计算出长方体b的体积。
而现今都用同一个函数段,系统怎样使它分别引用a或b中的数据成员呢?在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,称为this指针。它是指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址。
例如,当调用成员函数avolume时,编译系统就把对象a的起始地址赋给thi
this如你所见,就是指拥有这个函数的类对象自己,在你给的这个代码里,
“objsetyear(2008);”在运行到“return this;”的时候,this相当于&obj。
如果你声明了另一个date对象“date obj2;”并且调用“obj2setyear(2010);”的话,运行到“return this;”的时候,this相当于&obj2。
然后:
一、看别人的代码有助于提高,但是还是先从基础开始比较好……
二、复制别人的代码的时候,记得粘贴之后排个版……
this指针是一个隐含于每一个成员函数中的特殊指针它是一个指向正在被该成员函数 *** 作的对象,也就是要 *** 作该成员函数的对象
当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含作用this指针而通常不去显式地使用this指针来引用数据成员同样也可以使用this来标识调用该成员函数的对象下面举一例子说明this指针的应用
以上就是关于VC++ this指针 问题全部的内容,包括:VC++ this指针 问题、c中的如何用this指针取类中一个数值、c++ this指针等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)