首页 > 其他分享 >this指针 (保存调用成员函数对象的地址)

this指针 (保存调用成员函数对象的地址)

时间:2023-04-17 09:00:48浏览次数:40  
标签:调用 函数 成员 地址 指针 ecx

1. 在调用成员函数前,先将对象地址存入 ecx 寄存器,进入函数后将 ecx 压栈保存对象地址,当需要用到 this指针 时,再弹栈取出赋值给函数内部自带的一个 this指针

image

2. 数据成员是由 this指针 +偏移取到的。类的对齐规则和结构体一致

image

3. 静态成员函数没有 this指针

4. 若函数形参和成员名同名,需要使用 this指针指向成员名,否则根据变量重名的就近原则,只会操作形参。

5. 如果成员函数返回 *this 可以完成链式操作

标签:调用,函数,成员,地址,指针,ecx
From: https://www.cnblogs.com/qinghuan190319/p/17324693.html

相关文章

  • 函数指针
    函数指针 #include<stdio.h>void(*fun(void(*)(int),int))(int);//void(*)(int)fun(void(*)(int),int);voidfun1(inta);intmain(intargc,constchar*argv[]){intnum=123;fun(fun1,num);return0;}void(*fun(void(*p)(i......
  • 如何获取软件包的下载地址 wget curl
    ########################背景:在企业做自动化部署软件的时候,往往会自己搭建一个ftp服务来专门供工程师们下载,但是像我自己的部署在家的测试机一般都懒得去搭建一个ftp服务因为我经常重装系统,玩各种系统,但是这都会给我带来一些麻烦,比如常见的一些数据库或其他软件都是必备的软件,......
  • Rust编程语言入门之智能指针
    智能指针智能指针(序)相关的概念指针:一个变量在内存中包含的是一个地址(指向其它数据)Rust中最常见的指针就是”引用“引用:使用&借用它指向的值没有其余开销最常见的指针类型智能指针智能指针是这样一些数据结构:行为和指针相似有额外的元数据和功能引用计数......
  • 让 Spartacus 服务器端渲染引入 long API 调用超时机制的两种配置方法
    两种方法,使用config.backend.timeout={浏览器:...,服务器:...},或者可以更具体地配置,即基于Request粒度,通过将HTTP_TIMEOUT_CONFIGHttpContextToken传递给AngularHttpClient的方法来针对每个具体请求进行配置。在SSR(Node.js)中,超时处理耗时过长的外部http调用是一项尤为......
  • 作业随笔-指针2
    函数指针,数组指针,指针数组,指向函数指针数组的指针,函数指针数组6题(*(char**(*)(char**,char**))0)(char**,char**)把0强制转换为函数地址指向某个函数,并解引用进行使用,改变函数地址,操作内存,减少内存浪费函数指针,回调函数数组元素排序,结构体排序#define_CRT_SECURE_NO_WARNINGS1#incl......
  • ARP(地址解析协议)
        地址解析协议,即ARP(AddressResolutionProtocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定......
  • 远程调用之负载均衡Ribbon-No instances available for localhost ribbon
    如果使用的是多个实例情况,远程调用就不能写地址,否则远程调用报Noinstancesavailableforlocalhostribbon而是应该写成服务的名称 ......
  • Android Studio调用高德地图api
    一.搜索高德开放平台,进行注册并登录,进入到自己的控制台,打开应用管理下的我的应用,点击创建新应用。1.关于获取发布版安全码SHA1的过程如下:    打开AndroidStudio下方的Terminal,并自行找到.android在电脑中的位置,找到了之后,按照下图所示:   之后执行keytool-lis......
  • C指针——知识点集锦
    CPU访问内存时需要的是地址,而不是变量名和函数名!变量名和函数名只是地址的一种助记符,当源文件被编译和链接成可执行程序后,它们都会被替换成地址。编译和链接过程的一项重要任务就是找到这些名称所对应的地址。变量名表示的是数据本身,而函数名、字符串名和数组名表示的是代码块......
  • 通过OpenFeign远程调用同局域网的其他接口
    通过OpenFeign远程调用同局域网的其他接口需要的依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--feig......