在我的雇主,政策是我们在构造函数中使用初始化列表,因为它更有效.
但是,我正在开发一个有45个数据成员需要初始化的类.根据策略,这必须在构造函数的初始化列表中完成.
除了可读性之外,大型初始化列表的缺点是什么?
您可以在多个物理源代码行上格式化成员初始值设定项列表,因此不必存在可读性问题.
更大的问题显然是你有45个数据成员的类.没有什么能使这些课程变得特别容易.
AClass::AClass( type1 val1
, type2 val2
// ...
, type45 val45 )
: mem1( val1 )
, mem2( val2 )
// ...
, mem45( val45 )
{
}
Run Code Online (Sandbox Code Playgroud)
我认为它的可读性不亚于:
AClass::AClass( type1 val1
, type2 val2
// ...
, type45 val45 )
{
mem1 = val1;
mem2 = val2;
// ...
mem45 = val45;
}
Run Code Online (Sandbox Code Playgroud)
我认为可能值得退一步了解为什么您的班级有45个数据成员.这通常表明你的班级做了太多事情,并且有太多单独的责任,这将使这个班级很难维持一段时间.
听起来你可能需要将你的类分成单独的功能块,并让'controller'类委托给子类.这将大大降低代码的复杂性.
| 归档时间: |
|
| 查看次数: |
398 次 |
| 最近记录: |