设为首页 加入收藏

TOP

3.8.1 常量指针this
2013-10-07 15:31:57 来源: 作者: 【 】 浏览:86
Tags:3.8.1 常量 指针 this

3.8.1   常量指针this

在成员函数内部可以用指针常量this来访问与成员函数的调用相关联的对象(this是一个关键字)。

例3-43

 
本例中,构造函数将私有数据成员x初始化为0,该构造函数可以改写为:
 
这种写法是没有必要的,仅仅是为了说明this的语法。如果我们创建一个C对象
 

那么在构造函数调用中,this指向对象c1,即this的值为&c1。

类的公有成员函数经常会访问私有数据成员。如在3.6节的Task类中,成员函数setID和getID就是用来访问表示Task ID的私有数据成员id的。一种形式的定义是:

 
我们用大写字母ID表示参数,以避免与数据成员名id发生冲突。但在给setID这样的成员函数指定参数名时,一些C++(www.cppentry.com)程序员更喜欢用与被访问的数据成员相同的名称,并使用this来避免名称冲突,这样就产生setID的第二种定义形式:
 

表达式this->id访问对象的名为id的数据成员,并且函数的参数名称也是id。

例3-44

假设我们已经设计了一个File类,它有一个成员函数copy,该函数定义为:

 
if语句用来对如下调用进行检测:
 

在这里f1是File的对象,f1以它本身作为参数,调用自己的copy成员函数。copy成员函数中的if语句就是用来防止将一个文件拷贝到它本身这样不合理的做法,其检测办法是判断this与&dest是否指向相同的对象。在实际编程(www.cppentry.com)中这是一种常用的检测手段。

this指针是一个常量,它不能作为赋值、递增、递减等运算的目标对象。此外this只在非static成员函数中用才有效。

例3-45

 

本例有两个错误,在成员函数m中,我们试图给常量this赋值是错误的;而在static成员函数s中,我们试图访问this也是错误的。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.7 类数据成员和类成员函数 下一篇3.1.8 课后练习

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python中文网 - 人生 (2025-12-24 18:49:47)
·【整整648集】这绝对 (2025-12-24 18:49:44)
·Python超详细一条龙 (2025-12-24 18:49:42)
·【超详细】JDK 下载 (2025-12-24 18:19:32)
·Java_百度百科 (2025-12-24 18:19:29)