理解术语和概念的含义 - RAII(资源获取即初始化)
C++ 开发人员能否给我们详细描述一下 RAII 是什么、为什么它很重要以及它是否与其他语言有任何相关性? 我确实知道一点。 我相信它代表“资源获取就是…
Java 支持 RAII/确定性破坏吗?
我使用 Java 已经至少 5 年了,那时,任何时候你想分配一个需要清理的对象(例如套接字、数据库句柄),你都必须记住添加一个 finally 阻塞并调用其中…
关于智能指针及其不可避免的不确定性的问题
在过去的两年里,我在我的项目中广泛使用了智能指针(确切地说是 boost::shared_ptr)。 我理解并欣赏它们的好处,而且我通常非常喜欢它们。 但我使用…
好还是坏 C++ 习语 - 纯粹用于构造函数/析构函数的对象?
我有一些类,除了它们的构造函数/析构函数之外什么都不做。 这是一个 class BusyCursor { private: Cursor oldCursor_ public: BusyCursor() { oldCur…
是否存在“最终”出现的情况? 构造在 C++ 中有用吗?
Bjarne Stroustrup 在他的 C++ 风格和技术常见问题解答中写道,强调我的: 因为 C++ 支持一种几乎总是更好的替代方案:“资源获取即初始化”技术(TC++…
shared_ptr:它是用来做什么的
我在代码中大量使用了 boost::scoped_ptr ,这很棒,但我目前正在使用到处都使用共享指针的软件,我想知道我是否遗漏了一些东西。 据我所知,只有当不…
Ruby 中的 RAII(或者,如何在 Ruby 中管理资源)
我知道这是设计使然,你无法控制对象被销毁时会发生什么。 我还知道将某些类方法定义为终结器。 然而,C++ 的 RAII 的 ruby 习惯用法是这样的吗(…
Java 中的 RAII...资源处理总是那么丑陋吗?
我刚刚玩了一下Java文件系统API,并得到了以下函数,用于复制二进制文件。 原始来源来自网络,但我添加了 try/catch/finally 子句,以确保如果发生错…
为什么.NET 中没有 RAII?
作为主要的 C++ 开发人员,Java 和 .NET 中缺少 RAII(资源获取即初始化)总是困扰着我。 事实上,清理的责任从类编写者转移到了其使用者(通过 try f…