new、new()和new[]三者的区别
来源:互联网 发布:上海二手住宅成交数据 编辑:程序博客网 时间:2024/06/06 01:07
new、new()和new[]三者的区别
最近写程序,遇到了new, new()和new[]的三种情况,一时间有点混乱,因此总结如下:
1.new和new()
new A 来创建一个不确定值的对象或实例,new() 创建一个值为零的对象或实例.而new(X),用于创建一个被初始化为X的对象或实例.
只有当A是POD类型的时候,new A和new A()才会有上面的区别
何为POD?POD是plain old data的缩写,它是一个struct或者类,且不包含析构函数以及虚函数
当不是POD时,有构造函数时,两个都被初始化为零,属于默认构造.
没有构造函数是,两个都初始化为一个随机值,且两个值相同.
2.new和new[]
new 用于单个对象或者实例的创建,就是调用类的构造函数
new[]用于创建对象或实例的数组实例,并且地址是连续的
释放内存时,new使用 delete,而new[]则对应delete[]
1 0
- new、new()和new[]三者的区别
- new(std::nothrow) 和 new() 的区别
- new 、operator new 和 placement new 区别
- new 、operator new 和 placement new 区别
- new 、operator new 和 placement new 区别
- new operator、operator new 、placement new三者之间的区别与联系
- new operator、operator new 、placement new三者之间的区别与联系
- new operator、operator new 、placement new三者之间的区别与联系
- overwrite virtual new 三者的区别
- 三种new的区别
- new() new[]分配的区别
- 内存分配:new的三种方法-new expression、operator new和placement new
- 【理论实践】new的三种用法:plain new,nothrow new和placement new
- new操作符(new operator) 和 new操作(operator new)的区别
- override 和 new 的区别
- new和override的区别?
- new和malloc的区别
- new和using的区别
- 蓝牙开发(1)--软件端开发的理解
- Exchange 2016边缘传输服务器“MSExchange运行状况管理器”无法启动
- (OK)(OK)(All in CLI) running two Android-x86 which connect to NS3(MANETs) via "ethernet bridge"
- Excel -- 3. 数据管理和分析
- Leetcode算法题分类解析:(一)总览
- new、new()和new[]三者的区别
- 操作系统之loader的实现
- Fibonacci 数列及其计算方法
- Linkit Smart 7688 //OpenWrt - 2port
- C语言函数拾遗
- POI之图片导出到PPT简单实例
- ubuntu下安装spark
- C面试宝典-(程序题)1
- Fragment的陷阱