3.8.1 常量指针this
在成员函数内部可以用指针常量this来访问与成员函数的调用相关联的对象(this是一个关键字)。
例3-43
|
|
那么在构造函数调用中,this指向对象c1,即this的值为&c1。
类的公有成员函数经常会访问私有数据成员。如在3.6节的Task类中,成员函数setID和getID就是用来访问表示Task ID的私有数据成员id的。一种形式的定义是:
表达式this->id访问对象的名为id的数据成员,并且函数的参数名称也是id。
例3-44
假设我们已经设计了一个File类,它有一个成员函数copy,该函数定义为:
|
在这里f1是File的对象,f1以它本身作为参数,调用自己的copy成员函数。copy成员函数中的if语句就是用来防止将一个文件拷贝到它本身这样不合理的做法,其检测办法是判断this与&dest是否指向相同的对象。在实际编程(www.cppentry.com)中这是一种常用的检测手段。
this指针是一个常量,它不能作为赋值、递增、递减等运算的目标对象。此外this只在非static成员函数中用才有效。
例3-45
|
本例有两个错误,在成员函数m中,我们试图给常量this赋值是错误的;而在static成员函数s中,我们试图访问this也是错误的。



