Bla*_*elt 4 c++ design-patterns
来自Effective Java 2ed Item 2:
telescoping构造函数模式,其中您只提供一个带有必需参数的构造函数,另一个带有一个可选参数,另一个带有两个可选参数,依此类推,最后是一个带有所有可选参数的构造函数
我可以用C++做同样的事吗?我试过这样的事情:
MyClass::MyClass(QWidget *parent)
{
MyClass(NULL, NULL, NULL, parent);
}
MyClass::MyClass(QString title, QWidget *parent)
{
MyClass(title, NULL, NULL, parent);
}
MyClass::MyClass(QString title, QString rightButton, QWidget *parent)
{
MyClass(title, NULL, rightButton, parent);
}
MyClass::MyClass(QString titleLabel, QString leftButtonLabel, QString rightButtonLabel, QWidget *parent)
: QWidget(parent)
{
// construct the object
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.任何提示?
我是C++领域的新手,所以...抱歉新问题
这在c ++ 11中称为委托构造函数,如下所示:
MyClass::MyClass(QWidget *parent)
: MyClass(NULL, NULL, NULL, parent)
{
}
Run Code Online (Sandbox Code Playgroud)
而你的版本会产生一个立即被销毁的临时版本.