Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"class": domyślny inicjator składowy nie jest dozwolony dla składowej klasy wartości
Uwagi
W programie Visual Studio 2015 i starszych kompilator zezwolił (ale zignorował) domyślny inicjator składowy dla elementu członkowskiego klasy wartości. Domyślna inicjalizacja klasy wartości zawsze inicjuje składowe; konstruktor domyślny jest niedozwolony. W programie Visual Studio 2017 domyślne inicjatory składowych zgłaszają błąd kompilatora, jak pokazano w tym przykładzie:
Przykład
Poniższy przykład generuje C3446 w programie Visual Studio 2017 lub nowszym:
// C3446.cpp
value struct V
{
int i = 0; // error C3446: 'V::i': a default member initializer
// is not allowed for a member of a value class
int j {0}; // C3446
};
Aby naprawić błąd, usuń inicjator:
// C3446b.cpp
value struct V
{
int i;
int j;
};