l 習慣應該堅持下去,不管今天是什麼日子。來自3月17日晚上9點半的總結。
l 比如類模板Array,它所生成的類除了可以進行上下限檢查外,其他行爲和C++標準數組一樣,但標準的數組是不允許數組間賦值的。設計中面臨的一個難題是怎樣禁止掉Array對象間的賦值操作。
l 有如下兩步禁止隱式生成的函數生成:
- 聲明這個函數(如operator=),並使之成爲private。顯示地聲明它,就防止了編譯器會自動生成它的版本,使之成爲private就防止了用戶調用它。
- 不去實現它。爲了防止友元和成員函數的調用,不去實現它,當友元或成員函數無意中調用了它,鏈接時就會報錯。
template <class T> class Array { private: //不要定義這個函數 Array& operator= (const Array& rhs); }