Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'klasse': een standaard initialisatiefunctie voor leden is niet toegestaan voor een lid van een waardeklasse
Opmerkingen
In Visual Studio 2015 en eerder heeft de compiler een standaard initialisatiefunctie voor leden toegestaan (maar genegeerd) voor een lid van een waardeklasse. Standaardinitialisatie van een waardeklasse initialiseert altijd nul-initialisatie van de leden; een standaardconstructor is niet toegestaan. In Visual Studio 2017 veroorzaken standaard initialisatieprogramma's voor leden een compilerfout, zoals wordt weergegeven in dit voorbeeld:
Example
In het volgende voorbeeld wordt C3446 gegenereerd in Visual Studio 2017 en hoger:
// 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
};
Verwijder de initialisatiefunctie om de fout te corrigeren:
// C3446b.cpp
value struct V
{
int i;
int j;
};