11
我有一对构造函数在C++ 03风格中工作得很好。其中一个构造函数调用父类(或基类)的构造......委托构造函数:委托构造函数的构造函数必须单独出现
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), win(new RawWindow(*this))
{
refresh();
}
...
我试图弄清楚如何使用新的C++ 11委派构造函数功能neaten这了一点。但是,下面的代码提供了以下编译器错误...
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), Window(){}
“的委托构造函数必须单独出现的初始化” ......
有没有解决这个什么办法?
“避免委托构造函数在这个例子中” - 看你的代码工作(谢谢+1),你可以扩展你为什么提出这个建议吗? – learnvst
@learnvst他们是一个奇特的默认参数。我发现默认参数或您的原始代码更具可读性。 – Pubby
是的,Window(Rectangle())'看起来有点奇怪。我明白你来自哪里。 – learnvst