首页 > 编程语言 >10. C++对象模型和this指针

10. C++对象模型和this指针

时间:2025-01-06 17:01:29浏览次数:3  
标签:10 函数 对象 成员 C++ 静态 变量 指针

1. 成员变量和成员函数分开存储

在C++中,类内的成员变量和成员函数分开存储
只有非静态成员变量才属于类的对象.

class Person {
public:
Person() {
mA = 0;
}
//非静态成员变量占对象空间
int mA;
//静态成员变量不占对象空间
static int mB;
//函数也不占对象空间,所有函数共享一个函数实例
void func() {
cout << "mA:" << this->mA << endl;
}
//静态成员函数也不占对象空间
static void sfunc() {
}
};
int main() {
cout << sizeof(Person) << endl;
system("pause");
return 0;
}

2.this指针概念

通过前面我们知道在C++中成员变量和成员函数是分开存储的
每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码
那么问题是:这一块代码是如何区分那个对象调用自己的呢?
c++通过提供特殊的对象指针,this指针,解决上述问题。this指针指向被调用的成员函数所属的对象
this指针是隐含每一个非静态成员函数内的一种指针
this指针不需要定义,直接使用即可.


this指针的用途:

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


标签:10,函数,对象,成员,C++,静态,变量,指针
From: https://blog.csdn.net/lyk987654/article/details/144966858

相关文章

  • 每个工程师都应知道的 10 个 Bash 脚本结构【转】
    每个工程师都应知道的10个Bash脚本结构工程师掌握Bash:10个结构统治一切Bash脚本是工程师的超能力。无论是自动化重复任务、连接工具还是管理系统,Bash总是简单而强大。但就像任何力量一样,它需要掌握。让我通过一个可能的场景,带您了解10个关键的Bash结构。场景您需......
  • (2024最新毕设合集)基于Django的电影资讯共享平台-10223|可做计算机毕业设计JAVA、PHP、
    目录摘要Abstract1绪论1.1研究背景1.2研究意义1.3论文结构与章节安排2电影资讯共享平台系统分析2.1可行性分析2.1.1技术可行性分析2.1.2经济可行性分析2.1.3 社会可行性2.1.4法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.......
  • Rad Studio 10.2.3 Tokyo 3231(DELPHI 10.2)官方ISO/百度云盘 下载地址
    Embarcadero希望通过RADStudio的最新版本帮助程序员更快地构建跨平台的本机应用程序。据悉,RADStudio10.2是一个具有Linux支持,改进的IDE菜单,新功能和增强的C++性能的版本。新版本支持基于LLVM的Linux编译器便于企业开发。DelphiLinux编译器能够帮助程序员采用新的和现有的W......
  • Go 语言中值传递与指针传递的选择之道
    目录Go语言中值传递与指针传递的选择之道一、Go中的传递本质二、如何选择传递方式1.遵循项目规范2.必须传地址的情况3.必须传值的情况4.可传值可传地址的情况三、值类型与引用类型1.值类型2.引用类型3.深浅拷贝四、方法接收器(Receiver)的选择在Go语......
  • 以C++为低延迟的解决方案总结
    前言某天在知乎上看到的问题https://www.zhihu.com/question/23185359/answer/137034841,《以C++为核心语言的高频交易系统是如何做到低延迟的》,感觉问题和答案都非常好,所以想在此归纳和总结一下优秀的答案作为今后的参考要点总结为了解决这个问题,可以结合我之前记录的C++......
  • 数据安全性超强的10个项目管理工具
    在当今数字化时代,数据安全性已成为项目管理工具选择中的关键因素。无论是企业内部项目还是跨团队协作,确保敏感信息的安全性至关重要。本文将介绍10个数据安全性最强的项目管理工具,帮助您在选择工具时做出明智的决策。禅道项目管理软件禅道项目管理软件是一款专为中国市场设计的......
  • IT软件研发行业备受欢迎的10个项目管理工具
    在当今快速发展的IT行业中,项目管理软件已经成为团队协作和项目成功的关键工具。无论是初创公司还是大型企业,选择合适的项目管理软件都能显著提升工作效率、优化资源分配并确保项目按时交付。本文将介绍10款在IT行业中备受推崇的项目管理软件,帮助您找到最适合自己团队需求的解决方......
  • win10重装如何跳过微软账号直接设置本地帐户.221111
    ​在添加你的帐户界面,选择脱机帐户2.第二个页面,选择有限的体验3.第三个页面,设置自己本地的用户名4.第四个页面,设置自己本地的密码......
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-10- 标签页(tab)操作 - 上篇 (详细教
    1.简介本来按照计划这一系列的文章应该介绍Context和Page两个内容的,但是宏哥看了官方文档和查找资料发现其实和宏哥在Python+Playwright系列文章中的大同小异,差不了多少,再在这一个系列介绍就有点画蛇添足,索性就不介绍和讲解了,有兴趣的自己可以看宏哥之前写的,或者自己查找资料和官......
  • 电脑盲如何选购笔记本避免被坑?很简单,不用别人教你也能搞定.240108
     经常有人问伟哥,笔记本电脑该如何选购。其实很简单,一是看预算,二是到某东看预算范围内的热销电脑,闭眼选就是。笔记本现在也是消费品了,没那么多讲究。 当然,如果要显得你自己更加专业或更加有逼格一点,那,在笔记本选购中,要注意两点:CPU和硬盘。 硬盘很好说,现在这时代,一定是固态......