【发布时间】:2023-04-01 08:40:01
【问题描述】:
在 Qt 中,大多数类通常都有一个公共包装类,其中包含一个指向私有类的指针。这是为了二进制兼容性。
然而,这意味着有很多事情需要手工实现。有人建议使用 QScopedPointer。
How to use the Qt's PIMPL idiom?
但是,这也没有实现复制和赋值。是不是有一个智能指针在复制指针时只会复制指针的内容。本质上,它应该表现得好像私有类中的数据在公共类中一样。
【问题讨论】:
-
假设您有一个类
A作为类B(class B : public A) 的基类,并且您有一个按如下方式构造的作用域指针:QScopedPointer<A> (new B)。您打算如何在不丢失数据的情况下复制它(以便调用Bs 复制构造函数)?
标签: c++ qt smart-pointers