时间:2011-01-10 23:39:16

标签: c++

我的类有很多构造函数,它在构造函数中有很多工作要做,所以我想创建一个私有的construct()函数来促进代码重用。这是一个好主意吗?因为我看到许多库没有这样做并且有代码重复。

由于

3 个答案:

答案 0 :(得分:3)

这完全没问题,可能是个好主意。可能有什么问题是有这么多的构造者。但这是不可能的。

答案 1 :(得分:1)

查看this question,以一般方式解决问题。

答案 2 :(得分:1)

只要construct不是虚拟的,它通常是安全的。我倾向于选择另一个方向。

使尽可能少的通用构造函数,如果我需要很多易于使用的方便构造函数,我使用自由(非成员)函数,它调用构造函数,用适当的默认值填充缺少的参数值,然后返回构造的对象。

这样我就避免了构造函数调用尚未构造的对象的成员函数的问题,并避免在类中复制代码。