杂记5
0. 賦值運算符的重載
? 在C++中,寫賦值運算符的重載的時候,一定要考慮自賦值的情況
1. 定義C++函數
在定義C++函數的時候我們盡量把這個函數里面的參數賦初值,還有就是構造函數中盡量去使用初始化成員列表去初始化這個成員變量,函數中注意const的使用
2. 析構函數判斷
?析構函數里面,最好加一個判斷,一般析構函數里面做的是一些清理的工作,所謂清理的工作大多是一些動態內存開辟出來的一些空間,這些空間一般用一個指針去維護它,我們在回收的時候,首先應該判斷這個指針指針是否為空,然后再去回收它。
3.拷貝構造函數
我們在寫類的時候,盡量去寫拷貝構造函數,防止出現淺拷貝的問題
4. memcpy函數
memcpy拷貝函數的使用是memcpy(需要寫入的地址,被寫入的內容的地址,寫入的字節的大小)
5.寫時拷貝
就是使用淺拷貝,但是在調用析構函數的時候不是一直釋放它,而是在使用淺拷貝的過程中使用一個計數器,這樣在釋放的時候不直接釋放它,而是使計數器減一,等到計數器為1的時候在釋放他
6. 賦值運算符的重載
? 賦值運算符重載的時候,一定要考慮自賦值的問題
7. size_t
在有的地方盡量多使用size_t
8. assert
盡量多使用assert自查
9. 子類調用父類的構造函數
class BadAlloc :public Exception
{
public:
?? ?BadAlloc(const char* msg = "")
?? ??? ?:Exception(1, "BadAlloc")
?? ?{
?? ??? ?_errMsg += msg;
?? ?}
?? ?void What()
?? ?{
?? ??? ?cout << _errId << endl;
?? ??? ?cout << _errMsg << endl;
?? ?}
};
總結
- 上一篇: 函数返回类的对象与拷贝构造函数
- 下一篇: 打印一张6寸照片多少钱