C++ 内存管理

标签 c++ memory pointers

我在大学里了解到,你总是必须释放你未使用的对象,而不是你实际上是如何做的。例如,正确地构建您的代码等等。 是否有关于如何在 C++ 中处理指针的一般规则?

我目前不允许使用 boost。我必须坚持使用纯 C++,因为我使用的框架禁止使用任何泛型。

最佳答案

我使用过嵌入式 Symbian 操作系统,它为此配备了一个出色的系统,完全基于开发人员约定。

  1. 只有一个对象会拥有一个指针。默认情况下,这是创建者。
  2. 所有权可以转让。为了指示所有权的传递,对象在方法签名中作为指针传递(例如 void Foo(Bar *zonk);)。
  3. 所有者将决定何时删除该对象。
  4. 要将对象传递给仅用于使用的方法,该对象将作为方法签名中的引用传递(例如 void Foo(Bat &zonk);)。
  5. 非所有者类可以存储对对象的引用(绝不是指针),只有当它们可以确定所有者在使用过程中不会破坏它时,才能存储它们。

基本上,如果一个类只是使用某些东西,它就会使用一个引用。如果一个类拥有某些东西,它会使用一个指针。

这很好用,使用起来很愉快。内存问题非常罕见。

关于C++ 内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27492/

相关文章:

c++ - 带有 MySQL Connector stmt->executeQuery() 错误的 VS Express 2013 C++

c++ - 为什么我不能在函数内部声明模板化类型别名?

c# - 获取内存值数组的最快方法

c++ - 我们可以有多少级别的指针?

c - a[n] 真的可以与 *(a+n) 互换吗 - 为什么 sizeof 返回两个不同的答案?

c - char 指针的段错误

c++ - 嵌套并行 omp v. 2.0 性能

php - 加密库冲突(MCrypt、libgcrypt)

memory - PC启动内存测试

objective-c - 静态变量和内存消耗