例如,我希望MyClass
的所有构造函数始终调用foo()
。但正如您在下面看到的,我正在做的方式有代码重复。有没有更优雅的方法来做到这一点,没有MyClass
从超类扩展?:
class MyClass{
MyClass();
MyClass(int);
MyClass(int, int);
private:
void foo();
}
MyClass::MyClass(){
foo(); //repetitive
}
MyClass::MyClass(int a){
foo(); //repetitive
}
MyClass::MyClass(int a, int b){
foo(); //repetitive
}
答案 0 :(得分:0)
问题由aschepler回答。我可以使用delegating constructors。
答案 1 :(得分:0)
如果您正在寻找一个简单的修复方法,为什么不定义一个包含方法foo的抽象类?,并且在默认的constrcutor中调用该方法foo(),现在您需要做的就是继承那个班。