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.
"függvény" : a virtuális bázisokkal rendelkező osztály konstruktorának "..." van; előfordulhat, hogy a hívások nem kompatibilisek a Visual C++ régebbi verzióival
Megjegyzések
Lehetséges inkompatibilitás.
Tekintse meg a következő kód példáját. Ha a konstruktor S2::S2 ( int i, ... ) definícióját a Microsoft C++ fordító 7-es verzió előtti verziójával állították össze, de az alábbi példa az aktuális verzióval van lefordítva, az S3 konstruktorhoz való hívása nem működik megfelelően egy speciális eseti híváskonvenció-módosítás miatt. Ha mindkettőt a Visual C++ 6.0 használatával fordították le, a hívás sem működne teljesen jól, hacsak nem adtak át paramétereket az ellipszishez.
A figyelmeztetés kijavításához
Ne használjon három pontot konstruktorban.
Győződjön meg arról, hogy a projekt összes összetevője az aktuális verzióval készült (beleértve az osztályt definiáló vagy hivatkozó kódtárakat is), majd tiltsa le a figyelmeztetést a figyelmeztető pragma használatával.
Example
Az alábbi példa c4256-ot hoz létre:
// C4256.cpp
// compile with: /W4
// #pragma warning(disable : 4256)
struct S1
{
};
struct S2: virtual public S1
{
S2( int i, ... ) // C4256
{
i = 0;
}
/*
// try the following line instead
S2( int i)
{
i = 0;
}
*/
};
void func1()
{
S2 S3( 2, 1, 2 ); // C4256
// try the following line instead
// S2 S3( 2 );
}
int main()
{
}