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