C++常量指针this
在每一个成员函数中都包含一个常量指针,我们称其为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相关推荐
- C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针
1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...
- const修饰的指针常量和常量指针
const char * p 指的是:p 是一个指针(变量),它指向一个常量字符(const char) char * const p 指的是:p 是一个常量指针(const p),它指向一个 ...
- 常引用、常量指针、指针常量、指向常量的常指针、空指针与野指针解释
1.一.基础知识 引用并非对象 引用必须初始化 引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起 类型要严格匹配 int &a = 10; //错误:引用类型的初始值必须是 ...
- 常量指针与指向常量的指针
这两个概念经常很容易混淆,下面简单分析一下 1.常量指针: int * const p : const p 就是一个常量,然后再看*,可以看出是一个常量类型的指针,即int类型的常量指针.不能修改 ...
- [C++基础]018_常量指针和指向常量的指针
先来看一下什么是常量指针,什么是指向常量的指针吧! 1. 常量指针定义 1 int * const ptr = new int(); 2. 指向常量的指针 1 const int* ptr; 上面已经 ...
- 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )
文章目录 一.const 普通用法 二.常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 ) 三.指针常量 ( 指针不能被修改 ) 三.指向 常量 的 指针常量 四.const 在 * 左 ...
- 【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )
文章目录 I . 引用概念 II . 引用声明 III . 引用 地址 内存 分析 IV . 常引用 V . 引用作为参数 VI . 引用 与 指针 对比 I . 引用概念 C++ 对 C 扩充 : ...
- c语言指向常量的指针和常量指针
指向常量的指针:该指针指向的值不能改变,指针不是常量,所以可以修改指针的指向 int main(void){ int value = 10; /*定义一个指向常量的指针*/ con ...
- c++ 指针常量,常量指针
当const遇到指针 一般来说,const修饰指针可以分为下面的集中情况. 描述 例子 含义 备注 const在*的左边 const int *b=&a; int const *b=& ...
最新文章
- Cocos Creator 预制的使用模板(一般用于UI)
- 混合和可扩展的纠错算法,用于长读的插入缺失和替换错误
- 我的数字万用表怎么了?
- c#listView
- 一张图,看懂阿里云的“飞天”史
- [转]MySQL日志——Undo | Redo
- 最大尺寸分辨率_未来就在眼前——视涯科技推出最高分辨率硅基OLED显示屏幕...
- ASP.NET MVC下的四种验证编程方式[续篇]
- 为什么要进行归一化处理?(从寻找最优解这个角度讨论)
- 不能启动u盘 uefi_不知道怎么进入主板设置U盘启动,试试这些方式
- 关于多画面窗口切换的刷新重绘问题
- Linux学习笔记(三):系统运行级与运行级的切换
- c语言飞扬的小鸟程序,C语言实现flappy bird游戏
- 面试官问:MySQL的自增 ID 用完了,怎么办?
- servlet是干什么的?
- chkdsk 停滞_职业停滞–早期发现和治疗
- LA 4043 Ants 二分图完美匹配
- 通过BL102实现Modbus PLC接入Thingsboard
- CSS3 vw/vh 实现内容窗口自适应
- CefSharp内核浏览器之C#与js的互相调用