1、記憶體洩漏(臭名昭著的bug)
示例:記憶體洩漏
#include #include using namespace std;
class test
int value()
~test()
};int main()
return 0;
}
2、深度的思考
我們需要這麼解決這個問題?
解決方案:
示例:智慧型指標
#include #include using namespace std;
class test
int value()
~test()
};class pointer
pointer(const pointer& obj)
pointer& operator = (const pointer& obj)
return *this;
}test* operator -> ()
test& operator * ()
bool isnull()
~pointer()
};int main()
注意:在過載賦值操作符時返回值一定是引用,可以連續賦值,引數一定是const引用,考慮自賦值的情況
指標操作符(->和*)可以被過載
過載指標特徵符能夠使用物件代替指標
智慧型指標只能用於指向堆空間的記憶體
智慧型指標的意義在於最大程度避免記憶體問題
智慧型指標分析
在我們寫 時,經常會忘記釋放掉動態開闢出來的記憶體,或者在我們的程式中,new和delete中間有如 throw goto return break 這樣引起執行流改變的語句時,就會造成沒有釋放資源,造成記憶體洩漏。void test1 t operator 注意函式返回值型別 上面說了智慧型指標是...
愛情三十七課,恩情儀式
常常有人問我 你寫愛情課堂,那你能告訴我,真正的愛情,或者好的愛情,是什麼樣嗎?這個問題好比叫我描述什麼是宇宙 但我還是可以用模擬的方法來講一講 愛情好比一盤番茄炒蛋,只有番茄或只有蛋,都不能稱之為愛情。其中,紅彤彤的番茄好比激情,而黏糊糊的蛋好比恩情 激情 恩情 愛情。當然,如果再加上點蔥花,放上...
C 學習筆記 第37課 智慧型指標分析
include using namespace std class test intgetvalue intmain return0 執行結果 01234 解讀 沒有對p進行記憶體釋放,會導致記憶體洩漏 解決方法 智慧型指標分析 通過類物件模擬智慧型指標,只能用來指向堆空間中的物件或者變數,智慧型指...