Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
"osztály": egy alapértelmezett tag inicializálója nem engedélyezett egy értékosztály tagjának
Megjegyzések
A Visual Studio 2015-ben és korábbi verzióiban a fordító engedélyezte (de figyelmen kívül hagyta) az alapértelmezett tag inicializálóját egy értékosztály egy tagjának. Az értékosztály alapértelmezett inicializálása mindig nulla inicializálja a tagokat; az alapértelmezett konstruktor nem engedélyezett. A Visual Studio 2017-ben az alapértelmezett tag-inicializálók fordítóhibát okoznak, ahogyan az ebben a példában látható:
Example
Az alábbi példa c3446-ot hoz létre a Visual Studio 2017-ben és újabb verzióiban:
// 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
};
A hiba kijavításához távolítsa el az inicializálót:
// C3446b.cpp
value struct V
{
int i;
int j;
};