2011-01-10 115 views
2

我班有许多构造函数和它有很多的构造函数,因此我想制作一个私有构造()函数来促进代码重用要做。这是一个好主意吗?因为我看到许多不这样做的库,并且有代码重复。是否有建设功能?

感谢

+3

但是,从构造函数中调用虚函数时要小心。它可能不像你所期望的那样行事;被调用的版本将是属于当前被调用的构造函数的类,而不是属于实际创建的类。 – Dawson 2011-01-10 23:54:22

+0

你有很多构造函数的原因是什么?构造函数之间有什么区别? – 2011-01-10 23:56:04

+0

@Alf P.施泰因巴赫他们是非常小的,像一个字符串,只是事情来添加方便 – jmasterx 2011-01-11 00:01:40

回答

3

这完全是罚款和可能是一个好主意。可能会涉及到如此多的构造函数。但是不可能说。

1

只要construct不是虚拟的,它是安全的。我倾向于喜欢去另一个方向。

使尽可能少的一般构造函数,如果我需要大量更易于使用的便捷构造函数,我使用免费(非成员)函数,它调用构造函数,填充缺少的参数默认值,然后返回构造的对象。

这样,我避免构造函数调用还未构造对象的成员函数的有点玄乎的问题,我避免在类复制代码。