zoukankan      html  css  js  c++  java
  • <c++ primer>第五部分 高级主题

    一  多重继承与虚继承

    1多重继承

    派生类的对象包含每个基类的基类子对象。

    派生类构造函数的次序按照基类构造函数在派生类类表中的出现顺序。

    析构函数的次序是构造函数的逆序。

    多个基类可能导致二义性。(含有相同的成员)

    解决方法:1指定某个基类。2在派生类中定义这样一个成员。

    2虚继承(virtual)

    为了避免多次包含同一基类,定义虚继承。

    类通过虚继承之处它希望共享其虚基类的状态。

    共享的基类子对象称为虚基类。

    无论虚基类出现在继承层次的任何地方,总是在构造非虚基类之前构造虚基类。

    二优化内存分配

    c++中,内存分配和对象构造紧密连接。new表达式分配内存,使用构造函数构造对象;调用析构函数撤销对象,释放内存。

    c++中除了new和delete之外,定义的内存分配方式有:

    分配和释放内存:

    (1) allocator类的allocate和deallocate成员。

    (2)operator new 和operator delete(这两个被new和delete表达式调用)

    构造和撤销对象:

    (1)allocator类的construct和destroy成员

    (2)定位new表达式 new(address) type(initializer-list)

    (3)直接调用对象的析构函数。析构函数并不释放对象所在的内存。

    (4)unitialized_fill和unitialized_copy

    三 固有的不可移植的特征

    1位域

    一种特殊的类数据成员。

    例如,class file{Bit mode:2;Bit pp:3;}

    补充:按位与& 按位或| 按位异或^ 按位求反~ 左移<<  右移>>

    2 volatile

    关键字volatile告诉编译器,对这样的对象不执行优化。

    一般用在多线程程序中,以防止出错。

    3extern "C"---链接指示

    说明是c语言写的函数





  • 相关阅读:
    GitLab的基础使用-汉化配置
    GitLab的基础使用-数据备份与恢复
    Apache Hadoop集群扩容实战案例
    Hadoop 集群-完全分布式模式(Fully-Distributed Mode)
    HDFS参数调优总结
    网站压力测试 工具webbench
    2013年十大必知的大数据分析公司
    做电子商务网上开店应该读的书
    教你用大功率路由器覆盖3平方公里的WiFi广告
    中央推进城镇化建设 六行业分享25万亿蛋糕
  • 原文地址:https://www.cnblogs.com/catkins/p/5270757.html
Copyright © 2011-2022 走看看