1.转型其实是一种编译器指令, 大部分情况下它并不改变一个指针所含的真正地址,它只影响"被指出之内存的大小和内容"的解释方式.
2.Global objects的内存保证会在程序启动的时候被清为0, Local objects配置于程序的堆栈中, Heap objects配置于自由空间中, 都不一定会被清为0, 它们的内容将是内存上次被使用后的遗迹.
eg.
class test
{
       int a ;
       int b ;
       int c ;
};
test g_obj ;
void main ()
{
    test l_obj ;
    test *h_obj = new test();
}
对象g_obj中变量均被初始化为0, l_obj和h_obj中变量均未被初始化.
3.以下情况下编译器会生成默认构造函数:
1)带有默认构造函数的成员变量
eg.
class object
{
public:
    object()
        : val(0)
    {
    }
private:
    int val ;
};
 
class test
{
private:
    object obj ;
};
 
void main ()
{
    test t ;
}
vs中DEBUG我们可以看到对象t定义,编译器生成了test的默认构造函数
调用构造函数进行了一次跳转
具体构造函数体,函数内调用了对象object的构造函数
2)基类带有默认构造函数
3)带有虚函数的类对象
4)带有虚继承的类对象
4.拷贝构造函数不会直接进行字节拷贝操作情况.
1)当类内含一个成员变量是类对象,而后者类内声明有一个拷贝构造函数
2)当类继承自一个含有拷贝构造函数基类
3)当类声明了一个或多个虚函数
4)当类的继承体系中存在一个虚继承时.
5.构造函数初始化列表中成员变量初始化的顺序是以成员变量在类中的声明顺序进行的,并不是以初始化列表中的顺序进行初始化.
6.MSVC中对象的虚函数指针放在对象的头端,如下:
虚函数表中正向索引为虚函数, 负索引为虚基类的偏移量.
7.对象构造函数进行操作
1)调用base class constructor,顺序为从最底层到上层;
2)设定virtual table ptr;
3)按照成员在类中的声明顺序,初始化member initialization list中所列的成员;
4)调用用户所写代码;
8.析构函数进行操作;
1)调用destructor中用户代码首先执行;
2)class中拥有member class objects,且拥有destructors,则以声明的顺序相反的顺序被调用;
3)对象中含有virtual table ptr,则会被重新设定为适当的基类的虚函数表指针;
4)如果有任何直接的nonvirtual base classes 拥有destructor它们会以其声明顺序的相反顺序被调用;
5)如果任何virtual base classes拥有destructor,而当前讨论的这个class是最尾端的class,那么它们会以其原来的构造顺序的相反顺序被调用.

《深度探索C++对象模型》学习笔记的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

  10. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

随机推荐

  1. oracle创建job方法

    oracle创建job方法  alter system enable restricted session;--创建表create table G_TEST ( ID     NUMBER(12), ...

  2. VisualStudio自定义代码段_方法一

    在VisualStudio里,使用代码段会提高我们的编写速度.其实,就是给一段代码加个快捷方式,使用时,快捷方式按键+2次Tab键. 举个例子: 比如输入Console.WriteLine (); 传 ...

  3. C# - implicit, explicit

    如果类型直接没有继承关系,也没有共享接口,想在这两个类型之间进行转换,就必须重载转换运算符. 此时需要关键字implicit和explicit. 下面定义了类型ConvClass1和ConvClass ...

  4. Xcode - 必不可少的插件

    1. backLight 2.  BBUDebuggerTuckAway 3. Cocoapod 4. FuzzyAutoComplete 5. HOStringSense 6. KissImageN ...

  5. C++练习题

    1. 用面向对象的程序描述员工拥有的股票,股票有公司,价格,数量属性,且拥有展现基本数据,更新价格,买进,卖出操作,并具有比较两个股票对象股值大小的比较方法. 2. 用面向对象的程序描述一个栈的操作, ...

  6. BZOJ 3955 Surely You Congest 解题报告

    首先,我们可以求出源为 $1$ 号点的最短路图以及各个点到 $1$ 号点的最短路. 然后我们考虑那些距离不同的点,是一定不会发生拥堵现象的. 然后我们就只需要考虑那些距离相同的点,就相当于做一个最大流 ...

  7. 黑客是怎样绕过WAF之三重防护绕过讲解

    什么是WAF Web Application Firewall 通过执行一系列针对HTTP/HTTPS的安全策略来防御对Web应用的攻击. 目前主要有单设备WAF与云WAF WAF的现状 1.太多数W ...

  8. Django单元测试(一)

    Django测试框架非常简单,首选方法是使用python标准库中的unittest模块. Writing tests Django的单元测试使用python的unittest模块,这个模块使用基于类的 ...

  9. LinearLayout按下(pressed)或获取焦点(focused)时背景设置不同颜色或图片

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id=&qu ...

  10. prim(与边无关,适合稠密的图,o(n^2))---还是畅通工程

    题目1017:还是畅通工程 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1653 解决:838 题目描述:     某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“ ...