【发布时间】:2018-10-26 17:26:57
【问题描述】:
我设计了一个类 InputField 有一个带有 2 个参数的构造函数:explicit InputField(InputFieldIndex uiIndex, QString sName) noexcept;
我将这个类存储在QVector 中,所以很遗憾,我必须添加一个默认构造函数。在软件设计方面,这对我不利(因为我对uiIndex 有限制)。
有没有办法只允许QT(在我的情况下为QVector)调用默认构造函数?宏指令还是预处理指令?
【问题讨论】:
-
改用
std::vector怎么样?否则,故事化std::optional<InputField>或其他一些代理类型可能也值得考虑。 -
@FrançoisAndrieux 我不能,这是一个完整的 Qt 应用程序。
-
“完整的 Qt”是什么意思?有人强迫你使用 QVector?
-
@Milleras 你不能使用 C++ 标准库吗?
-
@Milleras 你禁止使用标准类型吗?否则,
QVector<std::optional<InputField>>似乎应该完成这项工作。