pimpl-idiom

pimpl-idiom

文章 0 浏览 7

如何以线程安全的方式实现PIMPL成语?

我有一个使用。该类的一个实例将在多线程程序中的多个线程中使用。在类的实现中,我确保在此类可以读/编写自己的数据或使用共享资源的任何地方都锁定…

汹涌人海 2025-02-13 00:52:44 1 0

关于PIMPL语法

我对PIMPL语法中使用的C ++使用情况有疑问。 首先,为什么不需要编写 pimpl(new Impl)为 pimpl(new my_class :: :: inprand) 第二,为什么 new ne…

壹場煙雨 2025-01-27 13:42:48 3 0

C++ PIMPL使用std :: unique_ptr和五个规则

如果使用std :: unique_ptr与PIMPL一起使用C ++类,并通过声明自己的destructor来解决PIMPL类在标题中不完整的事实(我知道我也可以提供自定义的delet…

对岸观火 2025-01-20 08:20:28 5 0

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

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

雪落纷纷 2025-01-16 12:03:01 5 0

C++使用抽象类无需 pimpl 即可实现 abi 兼容性

假设我有一个类 B_Impl ,它继承并实现了一个纯抽象类 B (不包含任何数据字段)。 假设类 A 仅通过 B* 使用 B_Impl。 如果我向 B_Impl.h 添加一个字…

不及他 2025-01-14 18:26:01 7 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

便携式 c++结盟?

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

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

pimpl 用于模板化类

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

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

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

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

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

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

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

两仪 2024-11-30 17:23:25 8 0
更多

推荐作者

alipaysp_snBf0MSZIv

文章 0 评论 0

梦断已成空

文章 0 评论 0

瞎闹

文章 0 评论 0

寄意

文章 0 评论 0

似梦非梦

文章 0 评论 0

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