zoukankan      html  css  js  c++  java
  • C++中定义类的对象:用new和不用new的区别

    Point p1;

    Point *p2=new Point();

    p1 由系统创建并释放,不用担心会出现内存泄露,但是生命期只有在本区域的大括号内,出了大括号就没用了。

    P2 是指针,要自己释放,用不好很危险,用好了功能强大,因为他可以赋值给全局的变量,一下子从局部变量变成全局变量,还能把对象作为函数返回值。

    p1 是在栈空间申请Point大小的空间。new的内存区域是在栈,会自动分配空间,一般在局部变量时使用,函数结束后会自动释放空间。

    p2 这是向堆空间申请一个sizeof(Point)大小的空间存放Point对象。(使用new 可以完成对象的构造) 。用new的内在区域是在堆,要自己手动分配空间,使用完后要手动释放空间, 另外栈中空间的分配一般在编译时就知道大小了,而如果要在运行时分配空间,就要使用堆了

  • 相关阅读:
    CSP 训练赛0925
    赛道修建 NOIP 2018
    C
    B
    游戏得分 建立反图SPFA / bellman
    肥宅快乐树 换根+树形DP/dfs
    组合数例题
    龙珠雷达 双指针+DP
    面试-restful规范
    django-中间件
  • 原文地址:https://www.cnblogs.com/wufengv5/p/3982155.html
Copyright © 2011-2022 走看看