一、C++ 类对象的内存存储方式
1、C 语言内存四区回顾
操作系统 将 C 代码 分为
4
个区 , 由上到下 : 堆区 , 栈区 , 全局区 , 代码区 ;
堆区 : 开发者负责分配释放内存 ,...: 不管是 普通成员函数 还是 静态成员函数 , 都存储在 代码段 中 ;
C++ 面向对象 的底层 , 也是通过 C 语言实现的 ;
3、C++ 编译器将 C++ 类 转为 C 语言代码 分析
C+...+ 编译器 将 C++ 类 的 成员变量 和 成员函数 进行分开定义 ;
普通成员变量存储 :
对于 普通的 成员变量 , 存放在 结构体 中 ,
原来的 类名为 Test , 普通成员变量为 mI ,..._成员函数名 , 即 Test_getI ;
函数名 转换完毕后 , 还需要解决一个问题 , 多个对象都需要调用该 Test_getI 方法 , 此时将 第一个函数参数 , 类型为 Test* 类型 ,...作为 对象的指针传入 ;
Test 类中的 getI 函数 , 最终转为了 Test_getI(Test* pThis) 函数 , 这是一个普通的 C 语言函数 ;
参数个数 : 将 C++ 类成员函数