• Effective C++学习笔记(三)


    资源管理

    条款十三 以对象管理资源,防止资源泄漏,使用RAII管理资源,使用智能指针shared_ptr

    • 为防止资源泄漏,使用RAII(resource Acquisition Is Initialization)对象,在构造函数中获得资源并在析构函数中释放资源。

    • 两个常被使用的RAII class分别是shared_ptr和unique_ptr(auto_ptr已经废弃)。

    条款十四 在资源管理类中,小心copy的行为

    • 复制RAII对象必须一并复制它所管理的资源,所以资源的copying行为决定RAII对象的copying行为。

    • 普遍而常见的RAII class copying行为是:抑制copying、使用引用计数法。不过其他行为也都可能被实现。

    条款十五 在资源管理类中,提供对原始资源的访问。

    • 每一个RAII class应该提供一个“取得其所管理之资源”的办法。

    • 对原始资源的访问可能经由显式转换或隐式转换。一般而言显式转换比较安全,但隐式转换对客户比较方便。

    class Font{
    	operator FontHandle() const  //隐式转换函数,容易带来危险。
    	{return f;}
    
    	FontHandle get() const  //显式转换函数
    	{return f;}
    };
    

    条款十六 成对使用new和delete,并采用相同的形式

    • new [] ,delete []; new ,delete.

    条款十七 以独立语句将newed对象置入智能指针

    • 以独立语句将newed对象置入智能指针内,如果不这样做,一旦new的时候抛异常,有可能导致难以察觉的资源泄漏。
  • 相关阅读:
    项目发展规划 题解
    善意的投票&小M的作物 题解
    方格取数加强版 题解
    BZOJ1001 狼抓兔子 题解
    a
    一个搬运
    代码“小白”的温故而知新(一)-----OA管理系统
    工作流-----WorkFlow
    温习SQL语句
    浅谈MVC基础
  • 原文地址:https://www.cnblogs.com/whutao/p/10857548.html
Copyright © 2020-2023  润新知