Powyższy kod nie działa. Rzeczywiście domyślny skonstruowany obiekt f
w konstruktorze Foo
skarży się, że wartość val
nie została zadeklarowana w zakresie. Nie rozumiem, dlaczego nie zostało to zadeklarowane.Nie zadeklarowana zmienna w obiekcie domyślnie konstruowanym w konstruktorze
struct Foo2
{
Foo2(int val)
{}
};
struct Foo
{
Foo(int val, Foo2 f = Foo2(val))
{}
};
int main()
{
Foo f(1);
return 0;
}
Nie można użyć parametrów domyślnych parametrów. – chris
To pytanie nie zawiera żadnych domyślnych konstruktorów. –