Der obige Code funktioniert nicht. Tatsächlich beschwert sich das konstruierte Standardobjekt f
im Konstruktor Foo
, dass der Wert val
im Geltungsbereich nicht deklariert ist. Ich verstehe nicht, warum es nicht erklärt wird.Nicht deklarierte Variable in default-konstruiertem Objekt im Konstruktor
struct Foo2
{
Foo2(int val)
{}
};
struct Foo
{
Foo(int val, Foo2 f = Foo2(val))
{}
};
int main()
{
Foo f(1);
return 0;
}
Sie keine Parameter in Standardparameter verwenden können. – chris
Diese Frage enthält keine Standardkonstruktoren. –