C++ 从入门到放弃 (Day-04)

回想一下面向对象的常见知识点

◼类
◼对象
◼ 成员变量、成员函数 ◼ 封装、继承、多态
◼ .....

◼ C++中可以使用struct、class来定义一个类
◼ struct和class的区别
struct的默认成员权限是public
class的默认成员权限是private


image.png

◼ 上面代码中person对象、pPerson指针的内存都是在函数的栈空间,自动分配和回收的
◼ 可以尝试反汇编struct和class,看看是否有其他区别
◼ 实际开发中,用class表示类比较多

C++编程规范

◼ 每个人都可以有自己的编程规范,没有统一的标准,没有标准答案,没有最好的编程规范
◼ 变量名规范参考
全局变量:g_
成员变量:m_
静态变量:s_
常量:c_
使用驼峰标识

对象的内存布局

◼ 思考:如果类中有多个成员变量,对象的内存又是如何布局的?


image.png

指针访问对象成员的本质

image.png

◼答案:10 40 50

this

◼ this是指向当前对象的指针
◼ 对象在调用成员函数的时候,会自动传入当前对象的内存地址


image.png

思考

◼ 可以利用this.m_age来访问成员变量么? 不可以,因为this是指针,必须用this->m_age

封装

◼ 成员变量私有化,提供公共的getter和setter给外界去访问成员变量


image.png

内存空间的布局

◼ 每个应用都有自己独立的内存空间,其内存空间一般都有以下几大区域
代码段(代码区)
✓ 用于存放代码
数据段(全局区)
✓ 用于存放全局变量等
栈空间
✓ 每调用一个函数就会给它分配一段连续的栈空间,等函数调用完毕后会自动回收这段栈空间
✓ 自动分配和回收
堆空间
✓ 需要主动去申请和释放


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 愿你像阳光,明媚不忧伤。 毕业后,我留在了距父母两千多公里的一个城市。很多的朋友都曾对我说过,羡慕...
    一只内向狗阅读 3,335评论 0 0
  • 总结 ---刘英 四预流支,预是预备预先,流是入流,入圣流。即是说四预流支是由凡入圣的利器,也是实现目标...
    德音生活美学阅读 1,670评论 1 0
  • 我是孤独患者 品尝寂寞滋味 黑夜身心交瘁 无法入睡 抽屉里的香烟 散发熟悉的香味 满地烟灰已憔悴 一段段感情 化为...
    JonsonWong阅读 968评论 0 0
  • 最近大表哥跟我说:现代社会日新月异, 就算实力跟不上,意识也要紧跟上。我理解就像二哈,打架打不赢不要紧,至少姿势...
    徐宗离阅读 851评论 0 0
  • 轻轻兮,吾将飞举; 自号兮,月牙不慈无柔, 批麻怀玉兮,执道抱一几人识? 微微兮,吾将上求; 察察兮,万物柔弱细微...
    月牙山人朱金城_凤凰训阅读 3,508评论 10 0