pimpl-idiom

pimpl-idiom

文章 0 浏览 6

为什么 = 默认成员初始值设定项请求 unique_ptr 析构函数的实例化,而 {} 则不然?

这是这个问题的后续内容: Does PIMPL idiom 实际上可以使用 std::unique_ptr? 完整示例使用多个文件,所以为了这个问题我在这里减少一下。完整的工作…

我不吻晚风 2025-01-13 00:45:18 0 0

如何从 pimpl 类调用调用者类的复制构造函数?

我只需要知道如果我想从 pImpl 类调用我的复制构造函数,我该怎么做? 例如: CImpl::SomeFunc() { //cloning the caller class instance caller = ne…

青衫负雪 2025-01-07 21:38:27 2 0

将 pImpl 指针转换回调用者类型

我在程序中使用 pimpl idiom,但我被困在一个地方。我的代码 Class* Class::GetP() { return ClassImpl->GetP(); } 在我的 ClassImpl->GetP() 中, Cl…

我最亲爱的 2025-01-05 21:52:02 1 0

PIMPL 习惯用法真的在实践中使用吗?

我正在阅读 Herb Sutter 的《Exceptional C++》一书,在那本书中我了解了 PIMPL 习惯用法。基本上,这个想法是为类的私有对象创建一个结构,并动态分…

反差帅 2024-12-28 09:21:53 2 0

GotW #101“解决方案”是否有效?真的能解决什么问题吗?

首先阅读 Herb 的 Sutters GotW 帖子,涉及 C++11 中的 pimpl: GotW #100:编译防火墙(难度: 6/10) GotW #101:编译防火墙,第 2 部分(难度:8/10…

深空失忆 2024-12-22 06:36:22 2 0

模板中的 pimpl-idiom;哪个智能指针?

我通常对 pimpl 使用 boost::scoped_ptr (出于一个原因,因为如果我忘记处理复制构造函数,我不会感到惊讶) 但是使用模板,我不能只将析构函数放在 …

月下伊人醉 2024-12-19 19:51:47 2 0

便携式 c++结盟?

我想将 Pimpl 惯用法与本地存储惯用法一起应用: mytype.h class mytype { struct Impl; enum{ storage = 20; } char m_storage[ storage ]; Impl* PI…

夜空下最亮的亮点 2024-12-13 03:02:22 2 0

pimpl 用于模板化类

我想使用 pimpl 习惯用法来避免我的库的用户需要我们的外部依赖项(如 boost 等),但是当我的类模板化时,这似乎是不可能的,因为方法必须位于标头中…

-小熊_ 2024-12-11 17:36:29 3 0

避免泄漏 C++ 中的外部类型班级

我在标头中定义了一个类,如下所示(缩写): class CairoRenderer { public: CairoRenderer(); ~CairoRenderer(); ... protected: cairo_t* m_contex…

橘虞初梦 2024-12-09 22:15:56 4 0

PIMPL、POD、实现类的可见性,它的析构函数会被调用吗?

维基百科声称,在 有关不透明指针的文章中,那个 d 指针是类的唯一私有数据成员,指向结构体的实例(该结构体必须是 POD,因为它的析构函数不可见) …

两仪 2024-11-30 17:23:25 3 0

Pimpl 习惯用法和内部对象协作,无需友元声明

我正在使用 pimpl 习惯用法实现几个类,并且遇到了一些设计问题。 首先,我总是看到 pimpl 这样做 class Object { public: Visible(); ~Visible(); ..…

甜味拾荒者 2024-11-17 03:29:50 7 0

C++ Code Complete 关于封装的建议?

在《Code Complete》中的“良好封装”部分中,建议隐藏私有实现细节。在 C++ 中给出了一个例子。这个想法基本上是将接口与实现完全分离,即使在类级别…

梓梦 2024-11-15 07:13:25 7 0

pimpl 中的方法是内联的吗?

考虑下一个简单的例子: 标题: // a.hpp #ifndef A_HPP #define A_HPP #include class A { public: A(); int foo(); private: struct Imp; std::auto…

倚栏听风 2024-11-14 04:56:17 5 0

隐藏一个 C++标头中的类而不使用未命名的命名空间

我正在编写一个 C++ 标头,其中定义了一个 class A { // ... }; 我想对外界隐藏的标头(因为它可能会在该标头的未来版本中更改甚至被删除)。 在同一…

欢你一世 2024-11-03 09:39:43 10 0

如何正确包装第三方库结构?

在我的项目中,我使用不断变化的第三方库。我有这个库的包装类(桥模式+ Pimpl 模式)。因此,除了包装器实现之外,我的所有来源都没有看到该库。 该…

奶茶白久 2024-11-03 09:27:07 10 0
更多

推荐作者

佚名

文章 0 评论 0

羁客

文章 0 评论 0

文章 0 评论 0

夏日落

文章 0 评论 0

隐诗

文章 0 评论 0

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