博覽網C++學習第二週

       本週仍然是基本的class設計,只是內含指針(資源)函數

       對於這種class須要用構造/析構函數作RAII。而且要處理該class的spa

複製控制(拷貝構造和operator=)要麼禁止複製,要麼深拷貝,要麼設計

引用計數等等。。。用Big Three來管理資源實現「自動」的內存管理是很指針

好的。code

       其實,把這個概念通常化,能夠把指針抽象成一個class,實現本身的blog

資源管理,成爲智能指針。爲何有了shared_ptr,等智能指針還要本身寫內存

智能指針(或者叫句柄?)由於咱們有本身的需求啊,每一個程序都有本身資源

不同凡響的地方,好比寫時複製啊,析構時用一些特殊的方式釋放資源啊內存管理

等等。編譯

       吐槽一下做業的題目,能出得用心一些嗎?爲了讓類有一個指針數據,

直接把Point類型的數據成員變成Point*的指針成員,能不能稍微含蓄一些?

好比你用Pimp手法寫成:

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

這樣不是也含有指針成員了嗎?並且還使class的界面和實現完全分離,大大下降了文件間的編譯依賴性。

相關文章
相關標籤/搜索