動態

列表
創建 時間

【C/C++實用工具】內存相關問題排查工具---cppcheck與valgrind

C++中令人疑惑的內存問題 C++的內存問題時常令人十分困惑。總結起來C++的內存問題可以分為以下幾類 內存泄露 當程序員使用new(或malloc)關鍵字分配內存而忘記使用 delete (或free)函數或 delete[] 運算符釋放內存時,C++ 中就會發生內存泄漏。在 C++ 中使用錯誤的刪除運算符會發生內存泄漏最多的情況之一。delete 運算符應用於釋放單個分配的內存空

創建 時間

C++的移動構造函數和移動賦值運算符

什麼是移動構造 在 C++ 11 標準之前(C++ 98/03 標準中),如果想用其它對象初始化一個同類的新對象,只能藉助類中的複製(拷貝)構造函數。在C++11中,引入了右值引用,提供了左值轉右值的方法,避免了對象潛在的拷貝。而移動構造函數和移動賦值運算符也是通過右值的屬性來實現的。直觀的來講,移動構造就是將對象的狀態或者所有權從一個對象轉移到另一個對象。只是轉移,沒有內存的搬遷或者內存拷貝所以