raii

raii

文章 0 浏览 3

在 C++ 中实现智能指针的最佳方法是什么?

我一直在评估各种智能指针实现(哇,有很多),在我看来,它们中的大多数可以分为两大类: 1)此类别在引用的对象上使用继承,以便它们具有引用计数通…

尤怨 2024-07-13 05:58:37 11 0

Java 支持 RAII/确定性破坏吗?

我使用 Java 已经至少 5 年了,那时,任何时候你想分配一个需要清理的对象(例如套接字、数据库句柄),你都必须记住添加一个 finally 阻塞并调用其中…

我的痛♀有谁懂 2024-07-12 19:28:13 5 0

关于智能指针及其不可避免的不确定性的问题

在过去的两年里,我在我的项目中广泛使用了智能指针(确切地说是 boost::shared_ptr)。 我理解并欣赏它们的好处,而且我通常非常喜欢它们。 但我使用…

冷弦 2024-07-12 02:29:38 6 0

好还是坏 C++ 习语 - 纯粹用于构造函数/析构函数的对象?

我有一些类,除了它们的构造函数/析构函数之外什么都不做。 这是一个 class BusyCursor { private: Cursor oldCursor_ public: BusyCursor() { oldCur…

岁月静好 2024-07-11 19:54:09 7 0

C++ 中的 RAII 和智能指针

在 C++ 实践中,什么是RAII,什么是智能指针,它们是如何在程序中实现的以及将 RAII 与智能指针结合使用有什么好处?…

云雾 2024-07-11 01:19:04 8 0

用纯 C 实现 RAII?

是否可以在纯 C 中实现 RAII ? 我认为以任何理智的方式都是不可能的,但也许使用某种肮脏的技巧是可能的。 我想到的是重载标准的 free 函数,或者可…

铜锣湾横着走 2024-07-10 20:48:13 6 0

是否存在“最终”出现的情况? 构造在 C++ 中有用吗?

Bjarne Stroustrup 在他的 C++ 风格和技术常见问题解答中写道,强调我的: 因为 C++ 支持一种几乎总是更好的替代方案:“资源获取即初始化”技术(TC++…

清晨说晚安 2024-07-10 12:09:31 9 0

shared_ptr:它是用来做什么的

我在代码中大量使用了 boost::scoped_ptr ,这很棒,但我目前正在使用到处都使用共享指针的软件,我想知道我是否遗漏了一些东西。 据我所知,只有当不…

佞臣 2024-07-09 05:49:45 11 0

Ruby 中的 RAII(或者,如何在 Ruby 中管理资源)

我知道这是设计使然,你无法控制对象被销毁时会发生什么。 我还知道将某些类方法定义为终结器。 然而,C++ 的 RAII 的 ruby​​ 习惯用法是这样的吗(…

浸婚纱 2024-07-07 07:10:52 10 0

Java 中的 RAII...资源处理总是那么丑陋吗?

我刚刚玩了一下Java文件系统API,并得到了以下函数,用于复制二进制文件。 原始来源来自网络,但我添加了 try/catch/finally 子句,以确保如果发生错…

别想她 2024-07-06 17:18:44 8 0

为什么.NET 中没有 RAII?

作为主要的 C++ 开发人员,Java 和 .NET 中缺少 RAII(资源获取即初始化)总是困扰着我。 事实上,清理的责任从类编写者转移到了其使用者(通过 try f…

镜花水月 2024-07-06 13:04:33 9 0

如果您不应该在析构函数中抛出异常,那么如何处理其中的错误?

大多数人说永远从析构函数中抛出异常 - 这样做会导致未定义的行为。 Stroustrup 指出“向量析构函数显式地调用每个元素的析构函数。这意味着如果元素…

说好的呢 2024-07-05 17:17:37 6 0

为什么使用 std::auto_ptr<> 是错误的 用标准容器?

为什么在标准容器中使用 std::auto_ptr 是错误的?…

蒲公英的约定 2024-07-05 08:52:04 6 0

使用 ScopeGuard 真的会带来更好的代码吗?

我多年前偶然发现了 Andrei Alexandrescu 和 Petru Marginean 撰写的这篇文章,其中介绍并讨论了称为 ScopeGuard 的实用程序类,用于编写异常安全代码…

热鲨 2024-07-04 11:28:10 4 0

避免 C++ 中内存泄漏的一般准则

确保 C++ 程序中不会泄漏内存的一般技巧有哪些? 如何确定谁应该释放动态分配的内存?…

怎会甘心 2024-07-04 04:26:59 5 0
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文