<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语言写的函数





转载于:https://www.cnblogs.com/catkins/archive/2012/09/25/5270757.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值