zoukankan      html  css  js  c++  java
  • 博览网C++学习第二周

           本周仍然是基本的class设计,只是内含指针(资源)

           对于这种class需要用构造/析构函数做RAII。并且要处理该class的

    复制控制(拷贝构造和operator=)要么禁止复制,要么深拷贝,要么

    引用计数等等。。。用Big Three来管理资源实现“自动”的内存管理是很

    好的。

           其实,把这个概念一般化,可以把指针抽象成一个class,实现自己的

    资源管理,成为智能指针。为什么有了shared_ptr,等智能指针还要自己写

    智能指针(或者叫句柄?)因为我们有自己的需求啊,每个程序都有自己

    与众不同的地方,比如写时复制啊,析构时用一些特殊的方式释放资源啊

    等等。

           吐槽一下作业的题目,能出得用心一些吗?为了让类有一个指针数据,

    直接把Point类型的数据成员变成Point*的指针成员,能不能稍微含蓄一些?

    比如你用Pimp手法写成:

    class Rectangle {
    public:
      //your code
    private:
      struct  Rectangle_Impl;
      Rectangle_Impl* pImpl;   
    };

    这样不是也含有指针成员了吗?而且还使class的界面和实现彻底分离,大大降低了文件间的编译依赖性。

  • 相关阅读:
    redis 学习笔记
    导数据方法
    数据库常用操作
    zepto.js
    shopnc
    vue.js
    laravel
    mysql进阶学习
    Python基础------生成器表达式形式、面向过程编程、内置函数部分
    Python基础----生成器、三元表达式、列表生成式、生成器表达式
  • 原文地址:https://www.cnblogs.com/y990441/p/7718874.html
Copyright © 2011-2022 走看看