Mam parę konstruktorów, które działają dobrze w stylu C++ 03. Jeden z konstruktorów nazywa nadklasą (lub konstruktora klasy bazowej) ...Delegowanie konstruktorów: inicjator dla delegującego konstruktora musi pojawić się samodzielnie
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), win(new RawWindow(*this))
{
refresh();
}
...
Próbuję dowiedzieć się, jak korzystać z nowych funkcji C++ 11 delegujący konstruktor neaten to się trochę. Jednak poniższy kod daje następujący błąd kompilatora ...
class Window : public Rectangle
{
public:
Window() : win(new RawWindow(*this))
{
refresh();
}
Window(Rectangle _rect) : Rectangle(_rect), Window(){}
„inicjator o przekazaniu konstruktora musi pojawić sam” ...
Czy istnieje sposób wokół to ??
"unikaj delegowania konstruktorów w tym przykładzie" - Czy widzisz, jak działa Twój kod (dzięki +1), mógłbyś wyjaśnić, dlaczego robisz tę sugestię? – learnvst
@learnvst Działają jako fantazyjny domyślny argument. Domyślne argumenty lub oryginalny kod są dla mnie bardziej czytelne. – Pubby
Tak, rzecz 'Window (Rectangle())' wygląda trochę dziwnie. Widzę, skąd przybywasz. – learnvst