this 自引用指针
this:C++为类的成员函数提供了一个名为this的指针,称为自引用指针。每当创建一个对象的时候,系统就把this指针初始化为指向该对象!
即this指针的值是当前调用成员函数的对象的首地址!!
故而可以通过这个this指针,在成员函数中进行数据操作。例如:
#include<iostream> using namespace std; class Node { private:double x_;double y_; public:Node(double x=0,double y=0){ x_=x;y_=y; }void copy(Node& node); //形参为Node类的引用!void disp(void){ cout<<"\nthis="<<this<<"when x_="<<this->x_; } }; void Node::copy(Node& node) {if(this==&node) return;*this=node; } int main() {Node nod1(1,2),nod2;nod1.disp();nod2.copy(nod1);nod2.disp();cout<<"\n";return 0; }
其中,在调用成员函数disp()的时候,this指针指向当前的类的对象。如nod1.disp();此时,this指向nod1的首地址。由于在类的声明中,成员函数在内存
中是为所有类的对象共享的,故而,不同的对象在调用相同的成员函数的时候,如何区分是对象在调用呢?靠this指针!
以上程序输出:
转载于:https://www.cnblogs.com/mt-luo/p/4162238.html
this 自引用指针相关推荐
- C语言中struct typedef 以及结构体指针用法
struct .typedef以及结构体指针用法 typedef用法 结构体指针用法 结构体初始化 typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别 ...
- 【RTOS训练营】课程学习方法和C语言知识(指针、结构体、函数指针、链表)和学员问题
一.课程学习方法 因为有些学员是刚进群,所以这里再把学习方法讲一下. 1. 预习 我们会在每一节晚课之后会通知要预习的章节,学员需要按如下操作观看相关视频. 1.1 打开百问网官网 1.2 点击首页 ...
- C++学习笔记:(一)面向对象 类与对象
目录 1.面向对象的概念 2.类与对象 2.1 类的定义格式 2.2 对象的定义与使用 2.3 构造函数和析构函数 2.4 内存的动态分配 2.5 对象数组和对象指针 2.6 函数参数的传递机制 2. ...
- rust全息要啥才能做_在 Rust 中不能做什么
编者注:上周 Armin 在自己的博客上首次发布了这个版本.如果你想再次阅读这篇文章,或者想看看 Armin 还在做什么,一定要去看看. 去年一直很有趣,因为我们用 Rust 建造了很多好东西,并且这 ...
- 深度剖析C语言结构体
深度剖析C语言结构体 1.什么是结构 2.结构体的声明 3.结构体变量的定义 4.结构成员变量的访问: 5.结构体变量的初始化: 6.嵌套的结构体: 7.结构体数组: 8.typedef 9.结构的自 ...
- C++面向对象程序设计陈维兴版第四章所有例题
本博文源于<C++面向对象程序设计陈维兴第三版>,第四章所有例题进行汇总! 文章目录 1.自引用指针this 2. 对象数组与对象指针 2.1 对象数组 2.2 对象指针 2.2.1 用对 ...
- C++面向对象程序设计教程
前言 全篇使用标题+代码的形式,知识点的介绍写在代码部分的注释里.书籍为<C++面向对象程序设计教程(第四版)>(陈维兴 林小茶 编著). 第一章为基础概念,过于简单:第七章为输入输出流, ...
- Volatility2安装使用以及CTF比赛题目(复现)
Volatility2安装使用以及CTF比赛题目(复现) 一 .简介 二 .安装Volatility 三 .安装插件 四 .工具介绍 五 .使用方法 1.系统基本信息(windows.info) 2. ...
- Thread Environment Block(TEB)
TEB简介 TEB(Thread Environment Block,线程环境块)指线程环境块,该结构体包含进程中运行线程的各种信息,进程中的每个线程都对应着一个TEB结构体.不同OS中TEB结构体的 ...
最新文章
- 2021.09 电子学会 - 软件编程(图形化)试题讲解
- 运维-nginx +php 错误状态码说明
- HTML字符实体(Character Entities),转义字符串(Escape Sequence)
- gin自定义HTTP配置
- 飞凌开发板 cramfs 镜像文件修改
- Undefined control sequence. \makecover
- 别再面向 for 循环编程了,JDK 自带的观察者模式就很香!
- sql2008性能计数器注册表配置单元一致性失败
- 还在用iTunes管理iPhone这款软件帮你轻松解决
- python基础教程十进制_Python基础教程(五):数字、字符串
- android 简单的贪吃蛇小游戏
- html后台登录界面网页设计界面
- 《GhostXP_SP2电脑公司经典版v8.2》LONGWANG制作
- Java实现OPC UA Client直接与PLC通讯
- 从零到一:如何用你的电脑成功登录QQ
- 【附源码】计算机毕业设计SSM校园二手物品交易网站
- 添加wellcap和endcap作用
- python扫描局域网端口和ip_python实现扫描局域网指定网段ip的方法
- 【Linux】内存检测工具Valgrind
- 【汇正财经】什么是复盘?
热门文章
- android togglebutton 自定义,自定义控件之-----ToggleButton
- java jmx 监控_利用VisualVm和JMX远程监控Java进程
- 蓝桥杯大赛软件赛省赛,C/C++大学B组,改革后2019-2021真题知识点分类
- 在VS2015中使用SDL2.0
- Oracle→数字函数、字符函数、时间函数、SYSDATE、TO_CHAR()、TO_DATE()、TO_NUMBER()、NVLNVL2NULLIF、ROW_NUMBER()
- Servlet→简介、手动编写一个Servlet、使用MyEclipse编写一个Servlet、Servlet生命周期、路径编写规范、初始化参数、MVC设计模式
- python交叉编译环境_交叉编译Python
- wdatepicker 设置只显示时分_液晶显示多功能电力仪表EX8-33
- [蓝桥杯]试题 基础练习 Sine之舞
- Unity3D基础24:LineRenderer特效