effective c++成对使用new 和 delete时要采取相同形式
2015-10-26 11:16
387 查看
string *str1 = new string; delete str1;//删除一个对象 string *str2 = new string[100]; delete []str2;//删除一个由对象组成的数组
如果使用delete[] str1或者delete str2都是未定义的
数组所用的指针通常还包括数组大小的记录,以便delete知道需要调用多少次析构函数
编译器往往会这么实现对象数组
n | object | object | object | object |
---|
typedef string AddressLine[4]; int main() { string* p = new AddressLine; delete []p;//great //delete p;行为未定义 //最好尽量不要对数组形式做typedef动作 //可以尝试用vector代替 }
相关文章推荐
- oracle数据库删除数据Delete语句和Truncate语句的使用比较
- some new eigrp feature
- delete from 表名与truncate table 表名区别
- drop,truncate与delete的区别
- mysql delete limit 使用方法详解
- MySQL DELETE语法使用详细解析
- ORACLE SQL-UPDATE、DELETE、INSERT优化和使用技巧分享
- sqlserver中delete、update中使用表别名和oracle的区别
- .net(c#)中的new关键字详细介绍
- SQL Server中的XML数据进行insert、update、delete
- 浅析drop user与delete from mysql.user的区别
- SQL Server中的XML数据进行insert、update、delete操作实现代码
- Rails Routes中new、collection、member的区别浅析
- C++中new与delete、malloc与free应用分析
- 基于C# 中可以new一个接口?的问题分析
- 数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)
- mysql 删除操作(delete+TRUNCATE)
- Linq to SQL Delete时遇到问题的解决方法
- javascript中的delete使用详解
- c++数组析构(delete delete[])