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

摘要:
前言当使用面向对象时,我们发现使用new和不使用new创建对象之间的差异非常大。让我们总结一下;总结一下,新创建的是指向类对象的指针,该指针需要接收该指针。它在一个地方初始化,在多个地方使用。但是,如果不使用new,则不需要指针。它创建一个类对象;New创建一个实例对象,指针指向该对象。范围变为全局。当使用该对象时,需要使用delete将其销毁;但是,如果它不是由new创建的,则它是对对象的引用。它的范围仅限于定义类对象的方法。什么时候
前言

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

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

免责声明:文章转载自《C++使用new和不使用new创建对象区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Nginx ServerName 配置说明(转)Aireplay-ng 6 种常用攻击模式详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

(转)C++类所占内存大小计算

C++类所占内存大小计算 转载时请注明出处和作者联系方式文章出处:http://blog.csdn.net/chenchong08作者联系方式:vision_chen@yeah.net 说明:笔者的操作系统是32位的。 class A {}; sizeof( A ) = ?sizeof( A ) = 1明明是空类,为什么编译器说它是1呢?空类同样可以实例化...

Linux内核数据结构hlist_head

参考自:https://blog.csdn.net/zhanglei4214/article/details/6767288 一、hlist结构简介 hlist_head 和 hlist_node 是位于linux内核中的数据结构,其设计初衷主要是为了减少Hash表的内存消耗。 structhlist_head { struct hlist_node...

数据引用Data References

定义引用变量Reference Variables. 141 动态创建数据对象Creating Data Objects Dynamically. 141 获取数据对象引用Getting References to Data Objects. 142 解引用Dereferencing Data References 定义引用变量Reference V...

jconsole使用

先看一张图 根据JConsole和任务管理器对比,堆内存大小在250M左右,差不多空跑一个程序用idea启动springboot就是这个大小 项目启动初始类在一万个左右,活动线程50个上下,cpu利用率可以忽略。 idea工具本身占用内存在1.7G,这个貌似有点大,具体的内存使用需要后续学习? google浏览器1G内存感觉也是逆天了。 内存分析这张图比...

Elasticsearch 堆内存

1、什么是堆内存? Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。 在 Java 中,堆被划分成两个不同的区域: 新生代 ( Young )、 老年代 ( Old )。 新生代 ( Young ) 又被划分为三个区域 Eden、 From Survivor、 To Survivor。 这样划分的目的是为了使...

ios学习之旅------玩转结构体

1.全局变量和局部变量 局部变量: 概念:定义函数内部变量 定义格式:变量类型 变量名称; 作用域:从定义那一行開始到所在代码块结束 生命周期:从代码运行到定义的哪一行開始,到其所在的代码的结束为止 特点:同样的代码块中不能够有同名的变量 不同的代码块中能够有同名的变量。内部的变量会覆盖外部定义的变量 全局变量: 概念:定义在函数外部变量 定义:变量类型...