三十七課 智慧型指標分析

2021-08-26 02:17:04 字數 851 閱讀 7856

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進行記憶體釋放,會導致記憶體洩漏 解決方法 智慧型指標分析 通過類物件模擬智慧型指標,只能用來指向堆空間中的物件或者變數,智慧型指...