在委托构造函数时,是更好地链接还是让每个构造函数都调用一个通用构造函数?

时间:2019-01-23 22:36:05

标签: c++ c++11 constructor-overloading

我在构造函数中有一个类,其中包含许多可能的参数组合,可以防止将所有参数简单地列出为默认参数。我可以像这样链接构造函数调用:

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){}
}

一个做比另一个有利吗?

由于委派构造函数的主体为空,它会更改已编译程序或影响运行时性能吗?如果确实如此,则编译器是否可以将其优化为更好的选择?

0 个答案:

没有答案