《C++Primer》 第18章:特殊工具与技术

18章:特殊工具与技术

@学习摘录229operator new函数和operator delete函数

——0.使用new表达式时实际发生的三个步骤

——1.首先,该表达式调用名为operatornew的标准库函数,分配足够大的原始的未类型化的内存,以保存指定类型的一个对象;

——2.接下来,运行该类型的一个构造函数,用指定初始化式构造对象;

——3.最后,返回指向新分配并构造的对象的指针。

——0.使用delete表达式时实际发生的两个步骤

——1.首先,对指针指向的对象运行适当的析构函数

——2.然后,通过调用名为operatordelete的标准库函数释放该对象所用内存。

摘录有想229

——简洁一点概括一下吧

—— new-> 分配内存(给指定对象)->构造对象->返回对象指针

—— delete-> 指向对象 ->释放内存 

@学习摘录230:定位new表达式(placementnew

——它接受指向已分配但未构造内存的指针,并在该内存中初始化一个对象。

——new(place_address)type; new (place_address)type (initializer-list)

@学习摘录231:一个内存分配器基类

——预先分配一块原始内存来保存未构造的对象,创建新元素的时候,可以在一个预先分配的对象中构造;释放元素的时候,将它们放回预先分配对象的块中,而不是将内存实际返还给系统。这称为自由列表(freelist)。

@学习摘录232volatile限定符

——volatile的确切含义与机器相关,只能通过阅读编译器文档来理解。

——使用volatile的程序在移到新的机器或编译器通常必须改变。

——关键字volatile是给编译器的指示,指出对这样的对象不应该执行优化。

---------------------

RTTI {

    typeid

    dynamic_cast

}

位域, type_info, volatile 与机器相关...


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值