- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我对 C 相当精通,在 C 中释放内存是必须的。
但是,我正在开始我的第一个 C++ 项目,我听说过一些关于如何通过使用共享指针和其他东西不需要释放内存的事情。
我应该在哪里阅读?这是对正确的 delete
C++ 功能的有值(value)的替代吗?它是如何工作的?
编辑
我很困惑,有些人说我应该使用 new
分配并使用 smart pointers 进行释放过程。
其他人说我一开始就不应该分配动态内存。
其他人说,如果我使用 new,我也必须像 C 一样使用 delete。
那么哪种方法被认为更标准并且更常用?
最佳答案
Where should I read about this?
Herb Sutter 的 Exceptional C++和 Scott Meyers 的 More Effective C++都是很好的书籍,详细介绍了该主题。
网络上也有很多讨论(谷歌或 StackOverflow 搜索“RAII”或“智能指针”无疑会产生很多好的结果)。
Is this a valuable replacement for proper
delete
C++ functionality?
当然。不用担心清理资源的能力,尤其是在抛出异常时,是使用 RAII 和智能指针最有值(value)的方面之一。
关于c++ - 启动 C++ 项目。我应该担心释放动态分配的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2723505/
我刚刚开始使用 data-* 属性来存储查看所需的自定义属性和值。例如 。 基于data-*我正在做一些操作(CRUD)。如果用户在客户端更改 data-* 属性值(即使用 firebug 和其他
我想知道是否有人可以指出正确的方向。我最近开始使用 LinqToSQL 并喜欢强类型数据对象等。 我只是在努力了解对数据库性能等的影响。例如,假设我正在开发一个简单的用户配置文件页面。该页面显示有关用
我正在开发一个有文本区域的 Angular 应用程序。此文本区域的内容随后用于填充输入文本的预览。所有这些都在客户端完成。我担心有人能够将代码注入(inject)我的应用程序,例如 /*So
我在一台机器上运行 CDH 5.6(Hadoop 2.6,HBase 1.0.0)。只有 Hadoop 和 HBase 在运行。 Hadoop 配置为复制因子 1,Hbase 运行在 HDFS 之上,
在 SO 和其他地方,如果没有人礼貌地指出最好使用参数化输入和存储过程,几乎不可能在示例代码中发布长连接的 SQL 指令。 最近的示例 here . 但是担心 Winforms 项目中的 SQL 注入
未受攻击的计算机上的 Web 应用程序在不安全的 WiFi 环境中容易受到 XSS、CRSF、sql 注入(inject)攻击和 cookie 窃取。 为了防止这些安全问题,有以下补救措施 sql注入
我在一个执行数值计算的库上工作了一段时间。它是用纯原生 C++ 编写的,直到现在我一直在使用简单的控制台应用程序来测试它的功能。 是时候在库的顶部构建一个 GUI - 以更好地显示结果表并以图形形式呈
我是一名优秀的程序员,十分优秀!