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.
viselkedésváltozás: 'member1' hívva a 'member2' helyett
Megjegyzések
A rvalue nem köthető össze nem konstans hivatkozással. A Visual C++ Visual Studio 2003 előtti verzióiban lehetséges volt, hogy egy rvalue-t közvetlen inicializálásban nem const hivatkozáshoz kössünk. Ez a kód most figyelmeztetést ad.
A visszamenőleges kompatibilitás érdekében továbbra is lehet értékeket kötni a nem konstans hivatkozásokhoz, de ahol csak lehetséges, a standard konverziókat részesítik előnyben.
Ez a figyelmeztetés a Visual C++ .NET 2002 fordító viselkedésének változását jelzi. Ha engedélyezve van, ez a figyelmeztetés a megfelelő kódra is megadható. Például az std::auto_ptr osztálysablon használatakor adható meg.
Ha ez a figyelmeztetés jelenik meg, vizsgálja meg a kódot, és ellenőrizze, hogy az függ-e a nem konstans hivatkozásokhoz való kötési rvaluáktól. Ha egy constot ad hozzá a hivatkozáshoz, vagy további const-reference túlterhelést biztosít, megoldhatja a problémát.
Ez a figyelmeztetés alapértelmezés szerint ki van kapcsolva. További információ: A fordító alapértelmezés szerint ki van kapcsolva.
Example
Az alábbi példa c4350-et hoz létre:
// C4350.cpp
// compile with: /W1
#pragma warning (default : 4350)
class A {};
class B
{
public:
B(B&){}
// try the following instead:
// B(const B&){}
B(A){}
operator A(){ return A();}
};
B source() { return A(); }
int main()
{
B ap(source()); // C4350
}