C++使用new和不使用new创建对象区别

前言

在使用面向对象的时候,发现使用new和不使用new创建的对象区别还是蛮大的,做个总结;

总结

  • new创建的是一个指向类对象的指针,需要指针进行接收,一处初始化,多处使用,但是不用new创建的话不需要指针,其创建的是一个类对象;
  • new创建一个实例对象,并且指针指向该对象,作用域变成了全局,使用完时需要用delete进行销毁;但是不用new创建的话,是一个对象的引用,作用域限制在定义类对象的方法中,当方法结束的时候,类对象会被系统自动释放掉,不会造成内存泄漏;
  • new创建对象直接使用堆空间,而局部不用new定义类对象则使用栈空间;
  • new对象指针用途广泛,比如作为函数返回值,函数参数等等;
  • 频繁调用场合并不适合使用new,就像new申请和释放内存一样;
  • new创建的话可以先置为空,后面再指向类对象,但是不用new的话不行,其创建的时候就要进行初始化,后面就不能再进行改变;
原文地址:https://www.cnblogs.com/George1994/p/6399881.html