effctive C++ 读书笔记 条款 16
条款16 成对使用new和delete时要採取同样形式
#include <iostream>
#include <string>
using namespace std; /* 条款16:成对使用new 和 delete时要採取同样形式 假设你在new表达式中使用[],必须在对应的delete表达式中也使用[]。假设在new其中没有使用[],那么delete中也
不能使用[],两者是成对出现的。 */
int main()
{ //第一版 : 报错
/*
string * p_str = new string[1000];
delete p_str;
*/
/*
当我们使用delete的时候,要考虑即将被删除的指针。所指的是单一对象还是对象数组;数组所用的内存通常还包含“数组大小”的记录
以便delete知道须要调用多少次析构函数,而单一对象的内存则没有这笔记录
*/
//第二版 能够通过
string * p_str = new string[1000];
delete []p_str; //第三版:报错。由于这样,delete会读取若干内存并将它解释为“数组大小”,然后開始调用多次析构函数,浑然不知它所处理的那块内存不但不是个数组。并且还不是它想要的对象类型
/*
string *p_str2 = new string;
delete []p_str2;
*/ //第四版 能够通过
string *p_str2 = new string;
delete p_str2; //第五版:报错,由于使用typedef后,这里一个string* 就是相当于new string[4]一样
/*
typedef string AddressLines[4]; //每一个人的地址有4行,每行是一个string
string* p1 = new AddressLines;
delete p1;
*/ //第六版 通过
typedef string AddressLines[4]; //每一个人的地址有4行。每行是一个string
string* p1 = new AddressLines;
delete []p1; return 0;
}
effctive C++ 读书笔记 条款 16的更多相关文章
- 《C#本质论》读书笔记(16)构建自定义集合
16.1 更多集合接口 集合类(这里指IEnumerable层次结构)实现的接口层次结构 16.1.1 IList<T>与IDictionary<TKey,TValue> 字典 ...
- 《python核心编程》读书笔记--第16章 网络编程
在进行网络编程之前,先对网络以及互联网协议做一个了解. 推荐阮一峰的博客:(感谢) http://www.ruanyifeng.com/blog/2012/05/internet_protocol_s ...
- effective C++ 读书笔记 条款08
条款08 别让异常逃离析构函数: 假设在析构函数其中发生了异常,程序可能会过早结束或者导致不明白行为(异常从析构函数传播出去) 看代码: #include <iostream> usin ...
- 《Effective C++》读书笔记 条款02 尽量以const,enum,inline替换#define
Effective C++在此条款中总结出两个结论 1.对于单纯常量,最好以const对象或enum替换#define 2.对于形似函数的宏,最好改用inline函数替换#define 接下来我们进行 ...
- effective C++ 读书笔记 条款11
条款11: 在operator= 中处理"自我赋值" 在实现operator=时考虑自我赋值是必要的就像 x=y .我们不知道变量x与y代表的值是否为同一个值(把x和y说成是一个指 ...
- C++ primer plus读书笔记——第16章 string类和标准模板库
第16章 string类和标准模板库 1. string容易被忽略的构造函数: string(size_type n, char c)长度为n,每个字母都为c string(const string ...
- 《Effective C++》读书笔记 条款03 尽可能使用const 使代码更加健壮
如果你对const足够了解,只需记住以下结论即可: 将某些东西声明为const可帮助编译器侦测出错误用法,const可被施加于任何作用于内的对象.函数参数.函数返回类型.成员函数本体. 编译器强制实施 ...
- INSPIRED启示录 读书笔记 - 第16章 市场调研
常用的市场调研工具和方法 用户调查:第一,设计调查问卷需要技巧和经验,不是一件容易的事:第二,调查结果为获得解决方案提供了一要途径,但不是解决方案本身 产品使用分析:使用分析工具记录用户使用产品的行为 ...
- R in action读书笔记(16)第十二章 重抽样与自助法之 置换检验
第十二章:重抽样与自助法 本章,我们将探究两种应用广泛的依据随机化思想的统计方法:置换检验和自助法 12.1 置换检验 置换检验,也称随机化检验或重随机化检验. 有两种处理条件的实验,十个受试者已经被 ...
随机推荐
- x86 保护方式 简介 一
80386 三种工作方式 实模式 保护模式和虚拟86模式 只有在保护方式下 全部32条地址线才有效 可以寻址高达4g字节的物理地址空间 超过1m的内存空间 被成为扩展的内存空 ...
- hdu 2177 威佐夫博弈变形
取(2堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- JSF框架整理
JSP体系结构: JSF主要优势之一就是它既是Java web 应用程序的用户界面标准又是严格遵循 模型-视图-控制器(MVC)设计模式的框架. 用户界面代码(视图)和应用程序数据和逻辑(模型)的清晰 ...
- 刷题总结——小z的袜子(bzoj2038)
题目: Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把 ...
- 【php wamp的配置】
- uva 10140 素数筛选(两次)
#include<iostream> #include<cstring> #include<cmath> #include<cstdio> using ...
- [NOIP2011] 洛谷P1313 计算系数
题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...
- Codeforces 432D Prefixes and Suffixes kmp
手动转田神的大作:http://blog.csdn.net/tc_to_top/article/details/38793973 D. Prefixes and Suffixes time limit ...
- ftrace的使用
This article explains how to set up ftrace and be able to understand how to trace functions. It shou ...
- 树莓派LED指示灯说明
原文:http://shumeipai.nxez.com/2014/09/30/raspberry-pi-led-status-detail.html?variant=zh-cn LED亮灯状态 LE ...