1、類的賦值函式
class cmystring
;
一般解法:
cmystring & cmystring::operator =(const cmystring &str)
更好的解法:
cmystring & cmystring::operator =(const cmystring &str)
return *this;
}
參見《劍指offer》,此方法考慮了異常安全性,構建的臨時物件在離開if時會自動呼叫析構函式,而temp和str指向的記憶體是乙個位置,所以會釋放例項的記憶體,達到目的。
2、單例模式
class singleton
; static singleton* instance = null;
public:
static singleton* getinstance()
};
考慮自動銷毀的話,則:
class singleton
; static singleton* instance = null;
class cgarbo//唯一工作時刪除instance例項
};static cgarbo garbo;//定義乙個靜態變數,程式結束時,自動呼叫其析構函式
public:
static singleton* getinstance()
};
3.不能被繼承的類
乙個類,如果不能被繼承,那麼當它的構造和析構函式是私有時,試圖繼承是,則必然會發生錯誤。
class nosealclass
static void deleteinstance(nosealclass* pinstance)
private:
nosealclass(){}
~nosealclass(){}
};
積跬步至千里 演算法強化訓練(7)大數問題
大數問題 當感覺用long或int已經不能滿足要求,需要考慮大數問題。大數問題將普通的數 算,轉移到字串上的操作。大數操作有很多寫法,但是我習慣用以下這個模板,因為對加法 乘法 減法都是乙個路子,便於記憶和理解。大數乘法 string multi string str1,string str2 大數...
積跬步至千里系列之十一 leetcode小結
刷leetcode一周了,從easy級別開始刷的。可能是自己基礎太薄弱,刷完之後容易忘記,另外,有些題有思路,但是不能正常快速的轉換成程式描述,程式的實現能力差。今天先把上週刷的5道題做個小的總結。1.zigzag conversion 之 字形字串反轉 p a h n 048 a p l s i ...
不積跬步無以至千里
1.開始閱讀此流程,如果你還沒開始的話。嚴格地按照步驟執行。2.讀一下習題指南,在xv xvii頁。3.令n 1。4.開始閱讀第n章。不要閱讀該章開始的引言。5.你對該章的話題有無興趣?如果有,跳到第7步,否則,跳到第6步。6.是否n 2?如果不是,跳到第16步。如果是,無論如何請將此章過一遍。第1...