三大函數(shù):拷貝賦值呈队、拷貝構(gòu)造剥槐、析構(gòu)
- class內(nèi)有指針的情況下不能使用編譯器默認的構(gòu)造、賦值宪摧、析構(gòu)函數(shù)粒竖。特別是拷貝構(gòu)造颅崩,拷貝賦值函數(shù)。
- 對于含有指針的拷貝賦值函數(shù)蕊苗,首先要進行自我賦值檢測(如果是自我賦值而沒有自我賦值檢測會造成嚴重的錯誤)沿后,其次要將之前的指針指向的內(nèi)容釋放掉,否則會造成內(nèi)存泄漏朽砰。
- 在class內(nèi)的成員變量和成員函數(shù)中尖滚,如果成員變量前加static修飾符則其在內(nèi)存內(nèi)某一個地方單獨存在,無論創(chuàng)建多少object都只有一份瞧柔。在成員函數(shù)前加static修飾漆弄,則函數(shù)變?yōu)殪o態(tài)成員函數(shù),它不能使用默認的this指針造锅,故只能操作靜態(tài)成員變量撼唾。對于靜態(tài)成員變量應該在class聲明后進行初始化操作。 調(diào)用static函數(shù)的方式有兩種:1.通過object調(diào)用2.通過class name調(diào)用备绽。
- class模板以
template <typename T>
開頭 - function模板以
template <class T>
開頭 - 使用命名空間
namespace std {
...//定義 可以分開寫券坞,不需要一次全部寫完
}
- 轉(zhuǎn)換函數(shù)重載
operator type() const;