我正在尝试使用前向声明和 d 指针来消除一些包含依赖项。一切都运行良好,除了我在许多地方使用 XList typedef 来提高可读性(例如:)typedef QList<X> XList
。
typedef 前向声明问题的解决方法是使用继承:class XList : public QList<X>{};
. QList 有一个非虚拟析构函数。考虑到 Qt 自己的 QStringList 继承QList<QString>
并且我没有在堆上分配 XLists 的事实,您认为这种解决方法有什么问题吗?我应该明确禁止 XList 类的堆分配吗?