我正在从Java转向C ++并且非常喜欢它。我不喜欢的一件事是根本不理解记忆,因为Java过去常常为我做这件事。
我已经购买了一本书:内存作为C和C ++中的编程概念 - Frantisek Franek
我是否有一些很好的网站可以交互学习C / C ++和内存使用(教程,论坛,用户组)?
答案 0 :(得分:5)
内存管理在C ++中几乎是自动的(有一些注意事项)。
大部分时间不动态分配内存 使用局部变量(和普通成员变量),它们将自动构造和销毁。
当你需要指针时,请使用智能指针 首先使用boost :: shared_pointer< T>而不是指针 这将使您走上正确的路径并在错误的时间意外删除内存并且90%的代码将正确释放(不幸的是循环会导致问题(仅在泄漏方面)并且您需要相应地进行设计(但我们有其他智能指针来处理周期weak_ptr))
我的基本规则是类永远不会包含RAW指针。始终使用某种形式的标准容器或智能指针。使用这些;析构函数调用变为自动。
一旦你感觉开始阅读其他智能指针以及何时使用它们:
答案 1 :(得分:2)
试试这些:
http://www.mycplus.com/tutorials/cplusplus-programming-tutorials/memory-management/
http://www.cantrip.org/wave12.html
http://linuxdevcenter.com/pub/a/linux/2003/05/08/cpp_mm-1.html
在wikibook中:http://en.wikibooks.org/wiki/C++_Programming/Memory_Management
本文将比较Java内存管理运算符与C ++等价物:http://www.javamex.com/java_equivalents/memory_management.shtml
http://www.infosys.tuwien.ac.at/Staff/tom/Teaching/UniZH/CPP/slides/cpp_07.pdf
希望这些能帮到你!