C++ Gotchas 第6章 内存及资源管理

原创 2003年04月10日 09:28:00

6 . Memory and Resource Management<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

6  内存及资源管理

 

C++在内存管理方面提供了极大的弹性,但几乎没有多少C++程序员完全通透其理。C++在这一方面,经由重载(overloading)、名称隐藏(name hiding)、构造(constructors)与析构(destructors)、异常(exceptions)、静态函数(static functions)与虚函数(virtual functions)、运算符函数(operator functions)与非运算符函数(non-operator functions),一起为内存管理提供了非凡的弹性和可定制性。而不幸的是——或许也不可避免的是——事情变得有些复杂了。

 

在本章中,我们来看一看C++的各种语言特征:如何一起用于内存管理;如何时而以令人吃惊的方式相互影响;如何消减其间的相互影响。

 

内存只是程序所管理的许多资源之一,因此我们还要看一看,如何将其它资源绑定到内存,使我们可以利用C++纷繁的内存管理设施来管理其它资源。

 

 

6  内存及资源管理

 

Gotcha #60: Failure to Distinguish Scalar and Array Allocation
Gotcha条款60:没能区分单体内存分配与数组内存分配

 

Gotcha #61: Checking for Allocation Failure
Gotcha条款61:检查内存分配失败的情形

 

Gotcha #62: Replacing Global New and Delete
Gotcha条款62:替换Global New和Global Delete

 

Gotcha #63: Confusing Scope and Activation of Member new and delete
Gotcha条款63:Member New和Member Delete之生存期与活动空间的迷惑

 

Gotcha #64: Throwing String Literals
Gotcha条款64:抛出String Literals

 

Gotcha #65: Improper Exception Mechanics
Gotcha条款65:不够适宜的异常机制

 

Gotcha #66: Abusing Local Addresses
Gotcha条款66:滥用局部地址空间

 

Gotcha #67: Failure to Employ Resource Acquisition Is Initialization
Gotcha条款67:没能秉持“Resource Acquisition Is Initialization(资源获取即初始化)”原则

 

Gotcha #68: Improper Use of auto_ptr
Gotcha条款68:auto_ptr的不当用法

 

《C++ Gotchas》读书笔记

阅读指南: 虽然这些原则都知道,但是应该怎样解决呢?所以,在阅读时着重关注解决方案(用红色标注).     C++Gotchas: Avoiding Common Problems in Co...
  • backard
  • backard
  • 2013年01月23日 20:12
  • 240

C++高手必看书籍

C++/OPP/OOD系列:层级一:语法/语意(C++)[Lippman2000] Essential C++ Essential C++,by Stanley B. Lippman Addiso...
  • zy122121cs
  • zy122121cs
  • 2016年04月26日 11:40
  • 644

Flink 原理与实现:内存管理

如今,大数据领域的开源框架(Hadoop,Spark,Storm)都使用的 JVM,当然也包括 Flink。基于 JVM 的数据分析引擎都需要面对将大量数据存到内存中,这就不得不面对 JVM 存在的几...
  • yunpiao123456
  • yunpiao123456
  • 2016年06月02日 23:22
  • 512

C++ Primer Plus第六版 第六章 编程练习答案

/***************************************************************************************************...
  • zhaoshu01234
  • zhaoshu01234
  • 2014年07月16日 23:18
  • 3945

c++ Primer Plus(第六版)第十六章习题,写代码之路

c++ Primer Plus(习题16.1) //让用户输入回文的单词,就是那种倒着读和顺着读一样意思的 //实现这个功能有很多方法,用了一种简单的方法 #include #include usi...
  • Robot_x
  • Robot_x
  • 2017年02月08日 20:19
  • 276

Effective C++(三)内存与资源管理

内存是必须管理的众多资源之一,其他常见的资源还包括文件描述起、互斥锁、图形界面中的字型和笔刷、数据库连接、以及网络sockets。...
  • u010991048
  • u010991048
  • 2014年07月29日 20:42
  • 405

Cgroup - Linux 内存资源管理

Hi ,我是 Zorro 。这是我的微博地址,我会不定期在这里更新文章,如果你有兴趣,可以来关注我呦。 另外,我的其他联系方式: Email: mini.jerry@gmail.com QQ...
  • bingqingsuimeng
  • bingqingsuimeng
  • 2016年08月01日 11:24
  • 1858

《Effective C++》资源管理:条款13-条款15

在系统中,资源是有限的,一旦用完必须归还给系统,否则可能会造成资源耗尽或其他问题。例如,动态分配的内存如果用完不释放会造成内存泄漏。 这里说的资源不仅仅是指内存,还包括其他,例如文件描述符、网络连接、...
  • KangRoger
  • KangRoger
  • 2015年01月14日 21:46
  • 1283

Android中资源管理机制详细分析

在Android中,所有的资源都在res目录下存放,包括drawable,layout,strings,anim等等,当我们向工程中加入任何一个资源时,会在R类中相应会为该 资源分配一个id,我们在应...
  • yuanzeyao2008
  • yuanzeyao2008
  • 2015年01月04日 12:56
  • 10478

[C++]资源管理

资源管理 所谓资源就是,一旦使用了它,将来必须归还给系统!C++最常见的资源就是动态分配内存,如果不归还就会内存泄露。 1. 以对象管理资源 我们通常希望有一个对象来帮助我们解决资源管理的问题...
  • stary_yan
  • stary_yan
  • 2016年04月26日 23:21
  • 4900
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ Gotchas 第6章 内存及资源管理
举报原因:
原因补充:

(最多只允许输入30个字)