pimpl-idiom

pimpl-idiom

文章 0 浏览 3

pimpl 惯用法如何减少依赖性?

请考虑以下内容: PImpl.hpp class Impl class PImpl { Impl* pimpl PImpl() : pimpl(new Impl) { } ~PImpl() { delete pimpl } void DoSomething() }…

旧故 2024-09-16 04:39:33 7 0

PIMPL 和堆栈分配

所以我一直在思考 PIMPL 和堆栈分配。我一直在编写一个库,并决定使用 PIMPL 来隐藏类的私有成员。这意味着我将有一个这样声明的类, class Foo { pri…

北恋 2024-09-10 00:56:35 11 0

这是使用 PIMPL 模式的好地方吗?

我正在开发一个为某些服务定义客户端接口的库。在幕后,我必须验证用户提供的数据,然后使用另一个库中的 Connection 类将其传递给“引擎”进程(注意…

白龙吟 2024-09-08 08:10:26 4 0

委托给私有部分

有时,C++ 的隐私概念让我感到困惑:-) class Foo { struct Bar Bar* p public: Bar* operator-&gt() const { return p } } struct Foo::Bar { void ba…

酒解孤独 2024-09-03 22:51:54 8 0

C++ pimpl 习惯用法与 C 风格相比浪费了一条指令?

(是的,我知道一条机器指令通常并不重要。我问这个问题是因为我想理解 pimpl 习惯用法,并以尽可能最好的方式使用它;而且因为有时我确实关心一条机…

凉宸 2024-09-02 12:54:55 6 0

pImpl 习惯用法和可测试性

c++ 中的 pImpl 习惯用法旨在向该类的用户隐藏该类的实现细节(=私有成员)。 然而,它还隐藏了该类的一些依赖项,从测试的角度来看,这些依赖项通常…

酒废 2024-08-31 19:07:45 7 0

从枚举定义中删除依赖常量

我试图通过使用不透明的结构和前向声明来安全地从我的项目中删除依赖项,但像大多数人一样,我仍然坚持我的枚举。 我试图从头文件中删除的头文件依赖…

汐鸠 2024-08-23 06:16:20 13 0

用最少的代码实现 pImpl

可以使用哪些技巧来最小化实现 pImpl 类的工作量? 标题: class Foo { struct Impl boost::scoped_ptr&ltImpl&gt self public: Foo(int arg) ~Foo() …

梦言归人 2024-08-23 03:05:38 10 0

Pimpl 习语:如果实现未知,则使用什么 size_type?

我有一个包含元素数组的类,我想给它一个 GetSize 成员函数。但是我应该给这个函数什么返回类型呢? 我使用的是 pimpl 习惯用法,因此在头文件中不知…

娇妻 2024-08-20 13:32:21 13 0

如何使用 Loki 的 Pimpl 实现?

Loki Pimpl 源代码链接 标题。 我找不到任何有关如何使用它的文档,任何人都可以解释如何使用。 标题中的以下函数是做什么的。 PimplOwner ImplOf Pim…

画▽骨i 2024-08-20 08:49:28 11 0

pimpl 类的私人成员?

pimpl 习惯用法中使用的实现类是否有任何理由拥有任何私有成员?我真正能想到的唯一原因是保护自己免受自己的伤害——即私有成员用于强制执行类和用户…

一个人的夜不怕黑 2024-08-20 01:24:22 4 0

是否可以用 Pimpl 封装 boost 插座?

在项目中,我们希望以某种方式包装 Boost Asio 套接字,使使用类或包装 .h 不必包含 boost 标头。 我们通常对包装类使用指针和前向声明。 前向声明: …

少女七分熟 2024-08-10 00:20:34 7 0

PIMPL 问题:如何在不重复代码的情况下实现多个接口

我有这个 pimpl 设计,其中实现类是多态的,但接口应该只包含一个指针,使它们多态在某种程度上违背了设计的目的。 因此,我创建了 Impl 和 Intf 基类…

浊酒尽余欢 2024-08-09 16:31:54 7 0

pimpl 习语和模板类朋友

我试图使用 pimpl 习惯用法来隐藏一些蹩脚的模板代码,但我无法让主体类友元的派生类访问句柄类。我从 MSVC 9 sp1 收到错误 C2248。下面是一些复制错…

彻夜缠绵 2024-08-08 05:09:20 9 0

您使用什么模式来解耦 C++ 中的接口和实现?

大型 C++ 项目中的一个问题可能是构建时间。 您的依赖树中有一些类需要处理,但通常您会避免这样做,因为每次构建都需要很长时间。 您不一定要更改其…

凉墨 2024-07-24 09:16:00 10 0
更多

推荐作者

linfzu01

文章 0 评论 0

可遇━不可求

文章 0 评论 0

枕梦

文章 0 评论 0

qq_3LFa8Q

文章 0 评论 0

JP

文章 0 评论 0

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