加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++ 对象成员变量和成员函数的内存模型及权限

发布时间:2020-12-16 09:19:42 所属栏目:百科 来源:网络整理
导读:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? C++ 对象成员变量和成员函数的内存模型及权限 1. class 中的成员函数与成员变量是分开存放的 2. 成员函数在内存中的位置 所有对象共享类中的成员函数,成员函数是函数,只可能存放在代码段里。 3. 成员变量

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? C++ 对象成员变量和成员函数的内存模型及权限

1.class 中的成员函数与成员变量是分开存放的

2.成员函数在内存中的位置

所有对象共享类中的成员函数,成员函数是函数,只可能存放在代码段里。

3.成员变量在内存中的位置

每个对象有独立的成员变量,成员变量是数据,数据只可能存放在栈空间(运行时)、堆空间(运行时)、全局数据区这三个区域。

运行时的对象退化为结构体的形式,所有成员变量在内存中像结构体中的一样依次排布,遵循内存对齐,可以通过内存地址直接访问成员变量。

4.如何区分权限

访问权限关键字在运行时失效,private 和 protected 的访问权限仅在编译时候有效。C++ 编译器在编译成员函数调用的时候,隐藏的传递了对象的地址,在成员函数的内部有了这个隐藏的地址当然可以直接访问对象的成员变量。(即编译时区分)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读