在每一个成员函数中都包含一个常量指针,我们称其为this指针,该指针指向调用本函数的对象,其值为该对象的首地址。通过该指针,我们可以在成员函数的函数体内访问对象。其中this是C++的一个关键字。

#include<iostream>
using namespace std;class book
{
public:book(){price = 0.0; title = NULL;}void copy(book &b);
private:double price;char * title;
};void book::copy(book &b)
{if(this == &b){cout<<"same object!"<<endl;return;}else{price = b.price;}
}int main()
{book Alice;book Harry;Harry.copy(Alice);Harry.copy(Harry);   return 0;
}

注意:

this指针是常量指针,它的值是不能被修改的,一切企图修改该指针的操作如赋值、递增、递减等都是不允许的。此外this指针只非static成员函数中才是有效的。this指针只能用于非静态成员函数内。

C++常量指针this相关推荐

  1. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针

    1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...

  2. const修饰的指针常量和常量指针

    const char * p   指的是:p 是一个指针(变量),它指向一个常量字符(const char) char * const p   指的是:p 是一个常量指针(const p),它指向一个 ...

  3. 常引用、常量指针、指针常量、指向常量的常指针、空指针与野指针解释

    1.一.基础知识 引用并非对象 引用必须初始化 引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起 类型要严格匹配 int &a = 10; //错误:引用类型的初始值必须是 ...

  4. 常量指针与指向常量的指针

    这两个概念经常很容易混淆,下面简单分析一下 1.常量指针: int * const p   : const p 就是一个常量,然后再看*,可以看出是一个常量类型的指针,即int类型的常量指针.不能修改 ...

  5. [C++基础]018_常量指针和指向常量的指针

    先来看一下什么是常量指针,什么是指向常量的指针吧! 1. 常量指针定义 1 int * const ptr = new int(); 2. 指向常量的指针 1 const int* ptr; 上面已经 ...

  6. 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )

    文章目录 一.const 普通用法 二.常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 ) 三.指针常量 ( 指针不能被修改 ) 三.指向 常量 的 指针常量 四.const 在 * 左 ...

  7. 【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )

    文章目录 I . 引用概念 II . 引用声明 III . 引用 地址 内存 分析 IV . 常引用 V . 引用作为参数 VI . 引用 与 指针 对比 I . 引用概念 C++ 对 C 扩充 : ...

  8. c语言指向常量的指针和常量指针

    指向常量的指针:该指针指向的值不能改变,指针不是常量,所以可以修改指针的指向  int main(void){    int value = 10;    /*定义一个指向常量的指针*/    con ...

  9. c++ 指针常量,常量指针

    当const遇到指针 一般来说,const修饰指针可以分为下面的集中情况. 描述 例子 含义 备注 const在*的左边 const int *b=&a; int const *b=& ...

最新文章

  1. Cocos Creator 预制的使用模板(一般用于UI)
  2. 混合和可扩展的纠错算法,用于长读的插入缺失和替换错误
  3. 我的数字万用表怎么了?
  4. c#listView
  5. 一张图,看懂阿里云的“飞天”史
  6. [转]MySQL日志——Undo | Redo
  7. 最大尺寸分辨率_未来就在眼前——视涯科技推出最高分辨率硅基OLED显示屏幕...
  8. ASP.NET MVC下的四种验证编程方式[续篇]
  9. 为什么要进行归一化处理?(从寻找最优解这个角度讨论)
  10. 不能启动u盘 uefi_不知道怎么进入主板设置U盘启动,试试这些方式
  11. 关于多画面窗口切换的刷新重绘问题
  12. Linux学习笔记(三):系统运行级与运行级的切换
  13. c语言飞扬的小鸟程序,C语言实现flappy bird游戏
  14. 面试官问:MySQL的自增 ID 用完了,怎么办?
  15. servlet是干什么的?
  16. chkdsk 停滞_职业停滞–早期发现和治疗
  17. LA 4043 Ants 二分图完美匹配
  18. 通过BL102实现Modbus PLC接入Thingsboard
  19. CSS3 vw/vh 实现内容窗口自适应
  20. CefSharp内核浏览器之C#与js的互相调用

热门文章

  1. 怎么样重装系统后能使电脑更快?
  2. ubuntu 开启关闭mysql 服务
  3. Simhash 网页重复
  4. UA MATH564 概率论 QE练习题 信封问题
  5. win32汇编创建线程简单Demo
  6. 图解命令行手动编译构建一个win32汇编程序
  7. Opencv2.4.9源码分析要点摘录
  8. 案例实作图解.Net Entity Framework 教程
  9. svnserve.conf - snvserve 的仓库配置文件
  10. iOS web与JS交互