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

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。
posted @ 2018-10-17 11:36  清澈见底  阅读(206)  评论(0编辑  收藏  举报