1.c++中的非静态数据成员直接内含在类对象中,就像c struct一样。
2.成员函数(member function)虽然内含在class声明之内,却不出现在对象中。
C++类对象中的变量和函数是分开存储。

应为不同的对象,共用一份成员函数,所以C++通过this指针来执行函数所调用的对象,this指针是C++实现封装的一种机制,它将对象和该对象调用的成员函数连接在一起,在外部看来,每一个对象都拥有自己的函数成员。一般情况下,并不写this,而是让系统进行默认设置。

this指针的使用场景:
1.当形参和成员变量同名时,可用this指针来区分
2.在类的非静态成员函数中返回对象本身,可使用return *this.


#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;// this可以解决命名冲突
class Person
{
public:Person(int age){this->age = age;//乳沟不加age的话,函数里的age被赋值后就会消失.}int age;
};void test01()
{Person p1(10);cout << "p1的年龄" << p1.age << endl;
}int main() {test01();system("pause");return EXIT_SUCCESS;
}

C++ this指针相关推荐

  1. MIT 6.s081学习笔记

    MIT 6.s081学习笔记 introduction 计算机组织结构: 最底部是一些硬件资源,包括了CPU,内存,磁盘,网卡 最上层会运行各种应用程序,比如vim,shell等,这些就是正在运行的所 ...

  2. Go 知识点(19)— Go 语言中的野指针

    野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...

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

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

  4. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)

    1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...

  5. Go 学习笔记(70)— Go 变量声明、变量初始化、值类型变量赋值、指针类型变量赋值

    1. 变量声明 要单纯声明一个变量,可以通过 var 关键字,如下所示: var s string 该示例只是声明了一个变量 s,类型为 string,并没有对它进行初始化,所以它的值为 string ...

  6. c/c++中的函数指针和指针函数

    定义 1.指针函数,本质是函数,返回值为指针,形如,int *pfun(int, int),由于"*"的优先级低于"()"的优先级,所以等同于int *(pfu ...

  7. 关于C语言中的数组指针、指针数组以及二级指针

    概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...

  8. 【数据结构】链表中的 指针,地址

    数据结构中跳过集合,直接开始线性结构 线性结构中单链表的操作涉及到给一个变量赋值地址,所以涉及到了指针 通过指针里的地址很方便找到节点 但指针这里绕了我很长时间,不论学了多少遍也不敢说把指针学会了 地 ...

  9. Qt实现 指针式时钟+动态时钟 (详细注释)

    先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...

  10. 【C语言】数组指针与指针数组的区分与应用

    这里以一道C语言题--输出矩阵两个对角线上的数(二维数组)为例 7-57 输出矩阵两个对角线上的数(二维数组) (6 分) 编写程序,将数据输入一个n * n二维数组中,输出矩阵两个对角线上的数.假设 ...

最新文章

  1. 图解GPT-2(完整版)!
  2. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性
  3. Delphi 组件开发教程指南(4)组件生成过程(针对TWinControl继承而来的组件)
  4. java中compare语句的用法_Java RuleBasedCollator compare()用法及代码示例
  5. 安装perl5.10.0
  6. Argon-轻盈简洁好看的WordPress主题
  7. 经典的 div + css 鼠标 hover 下拉菜单
  8. 不借助第三方jar包实现文件上传
  9. 记字符编码与转义符的纠缠
  10. 定义数字品牌资产,苏泽兰特CEO胡烜峰讲透元宇宙的价值与未来
  11. 手机打开电脑html没有图片,jpg图片手机能看电脑打不开怎么办
  12. 树莓派笔记12:通过SPI操作OLED显示屏
  13. 【IoT】基于 CC2530 的 ZigBee 物联网系统设计
  14. 让代码审查扮演更好的角色
  15. win11无法安装msi程序的解决方法
  16. 如何把视频转换成gif动图
  17. 对币圈假冒科学家骗子盗取私钥的分析
  18. 罗永浩的1.1亿,薇娅的卖火箭,蛋蛋的4.8亿,直播魔幻夜埋下了什么
  19. 《复仇者联盟4》经典台词——与热爱交易的小伙伴共勉
  20. 电脑显示依赖服务器组无法启动,重装系统后电脑一直提示依赖服务或组无法启动的解决方法教程[多图]...

热门文章

  1. sd卡和sdio sdhc_想买TF卡,那些标注卡上的参数看懂了么?
  2. 微课|玩转Python轻松过二级:第3章课后习题解答4
  3. 微课|中学生可以这样学Python(8.4节):递归算法例题讲解1
  4. Python爬虫扩展库BeautifulSoup4用法精要
  5. python爬虫select用法_Python爬虫利器二之Beautiful Soup的用法
  6. python案例数据集_Python数据集切分实例
  7. C++之const关键字探究
  8. C++之再探参数绑定bind、bind1st、bind2nd、placeholders占位符
  9. 移动组件到指定坐标_手把手教你使用业界首创的象限图组件
  10. python 列表为空报错_对比几段代码,看看你是 Python 菜鸟还是老鸟