0

假设一个类包含大约 10 个数据成员,那么初始化该特定类的对象的正确方法是什么?创建一个有 10 个参数的构造函数,还是只提供一个默认构造函数然后使用 setter 成员函数或其他东西?基本上我想知道它在实际代码中是如何完成的?谢谢。

4

3 回答 3

2

在实际生活中的代码中,我会非常不愿意有一个需要设置 10 个参数的类。

但在现实生活中,我知道这种情况发生的频率比我想的要多得多。所以这就是我要做的:

首先,评估您的设计。你真的需要所有这些东西吗?

其次,如果您确实需要所有这些东西,或者由于遗留设计而没有出路,那么我将要求构造函数中的每个参数,并将默认构造函数设为私有。一切都应该在初始化列表中进行初始化。

有时当数据成员和类方法充分解耦时,我宁愿将所有数据成员移动到它们自己的struct,然后structclass. struct通过引用const将其分配到初始化列表中。做struct会员const

于 2013-10-16T18:50:31.153 回答
0

另一个 [设计] 问题是,如果您使用具有那么多参数的类作为基类,然后添加更多参数(例如,由于需求),您很可能会忘记初始化它们。所以,是的,重构。

于 2013-10-16T19:10:51.397 回答
0

这真的不是OOP和设计问题吗?

这里的对象是什么?是该对象的所有 10 个字段属性吗?有些可以进一步归入另一个类吗?

当您需要实例化类时,您是否总是拥有全部 10 条数据?您可以为您拥有的部分创建构造函数和/或执行 setter/getter。

于 2013-10-16T19:25:59.810 回答