美文网首页
C++动态对象创建

C++动态对象创建

作者: zjunchao | 来源:发表于2016-03-22 11:21 被阅读78次

    对象创建

    当创建一个C++对象时,会发生两件事:

    1. 为对象分配内存
    2. 调用构造函数来初始化那个内存

    静态内存、堆、栈

    1. 储存空间在程序开始之间就可以分配。这个储存空间在程序的整个运行期间都存在。
    2. 在函数体内部创建的临时变量,储存单元都可以在栈上被创建。
    3. 动态内存分配的对象可以从一块被称为堆的地方分配。

    C 语言的实现

    • C的标准库中提供了一些函数:malloc() 以及其变种calloc() 和 realloc(). 释放内存返回给堆的函数free()

    C++ 中的实现

    • 把创建一个对象的所有操作都结合在一个称为new的操作符中。当用new创建一个对象时,它就在堆里为对象分配内存,并为这块内存调用构造函数
    • new 的反面是delete,delete表达式首先调用析构函数,然后释放内存
    • 如果正删除的对象的指针是0,将不发生任何事情。为此人们经常建议在删除指针后立即把指针赋值为0以免对它删除两次。对一个对象删除两次可能会产生某些问题。

    相关文章

      网友评论

          本文标题:C++动态对象创建

          本文链接:https://www.haomeiwen.com/subject/rufllttx.html