美文网首页
C++ 从入门到放弃 (Day-04)

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

作者: 麦兜兜买兜兜 | 来源:发表于2018-10-27 23:02 被阅读7次

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

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

    ◼ 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

    相关文章

      网友评论

          本文标题:C++ 从入门到放弃 (Day-04)

          本文链接:https://www.haomeiwen.com/subject/eslstqtx.html