zoukankan      html  css  js  c++  java
  • [C/C++] 第18章:特殊工具与技术《 C++ Primer 》

    18章:特殊工具与技术

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

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

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

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

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

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

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

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

    摘录有想229

    ——简洁一点概括一下吧

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

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

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

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

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

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

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

    @学习摘录232volatile限定符

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

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

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

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

    RTTI {

        typeid

        dynamic_cast

    }

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

  • 相关阅读:
    BZOJ4503 两个串
    【挖坟】HDU3205 Factorization
    webpack打包 The 'mode' option has not been set, webpack will fallback to
    echarts js报错 Cannot read property 'getAttribute' of null
    微信支付 get_brand_wcpay_request fail,Undefined variable: openid
    layui动态设置checbox选中状态
    layui 获取radio单选框选中的值
    js 获取数组最后一个元素
    js生成指定范围内的随机数
    layer重复弹出(layui弹层同时存在多个)的解决方法
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786718.html
Copyright © 2011-2022 走看看