码迷,mamicode.com
首页 > 编程语言 > 详细

c++内存模型,变量和函数

时间:2018-10-17 14:54:02      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:就是   地址   访问   dog   赋值   产生   内存模型   ima   cti   

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。

c++内存模型,变量和函数

标签:就是   地址   访问   dog   赋值   产生   内存模型   ima   cti   

原文地址:https://www.cnblogs.com/qcjd/p/9803111.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!