博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++内存模型,变量和函数
阅读量:4604 次
发布时间:2019-06-09

本文共 510 字,大约阅读时间需要 1 分钟。

1、c++中方法 存储在单独的方法表中,fuction——table,类中有方法指针来指向方法表中方法的实际地址,static和nonstatic 方法都存储在方法表中。
2、c++中类的对象的 成员变量存在class中,static 变量存储在class之外。
 
3、c++的成员指针式类似slot 插槽式设计,很容易计算class的大小。
4、每个class 产生一堆指向vitrul fuction的指针,这些指针放在一个表中,称为virtual table(vtbl)。
 
5、c++中对象直接赋值,实际上发生的是copy构造 例如:Animals 是父类,Dog是子类,
        Dog d;
        Animals ani=d;
            ani实际访问到的其实还是ani能访问的 ani初期编译能访问到的函数和变量,它并不是一个d对象。好绕口,好难讲清楚。
6、c++通过指针和引用类型来实现多态,也就是只有再指针类型和引用类型下能发生多态;;主要靠virtual 来实现多态,virtual function,virtual table。

转载于:https://www.cnblogs.com/qcjd/p/9803111.html

你可能感兴趣的文章
C#中检查网络是否连通的二种方法
查看>>
节假日设置
查看>>
<五>初探opengl,编写我们的镜头
查看>>
大数据操作:删除和去重
查看>>
2、JDBC-CURD
查看>>
【C语言零碎知识点】变量的存储类型
查看>>
编程时 对 用途这个字段定义时 不要用using 这个英文
查看>>
JQ实现accordion(可折叠)效果
查看>>
servlet的编码原理
查看>>
ARM4412的MMU内存管理单元
查看>>
HTML5可以存的东西有哪些:
查看>>
python相关遗漏知识点补充
查看>>
ReactJS实用技巧(2):从新人大坑——表单组件来看State
查看>>
无法删除数据库“XXX”,因为该数据库当前正在使用
查看>>
git flow 基本操作
查看>>
模态框中水平垂直居的问题
查看>>
Java学习方向
查看>>
C#使用System.Data.SQLite操作SQLite
查看>>
github开发
查看>>
Emacs学习笔记(13):在Emacs中打开pdf
查看>>