我在构造函数中有一个类,其中包含许多可能的参数组合,可以防止将所有参数简单地列出为默认参数。我可以像这样链接构造函数调用:
class A{
A(obj a, obj b, obj c){/*code*/}
A(obj b, obj c):A(defaulta, b, c){}
A(obj c):A(defaultb, c){}
}
或者我每次都可以像这样调用最深的构造函数:
class B{
B(obj a, obj b, obj c){/*code*/}
B(obj b, obj c):B(defaulta, b, c){}
B(obj c):B(defaulta, defaultb, c){}
}
一个做比另一个有利吗?
由于委派构造函数的主体为空,它会更改已编译程序或影响运行时性能吗?如果确实如此,则编译器是否可以将其优化为更好的选择?