Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Operatoridentifieraren är tvetydig
Anmärkningar
Mer än en möjlig operator definieras för en överbelastad operator.
Det här felet kan åtgärdas om du använder en explicit gjutning på en eller flera faktiska parametrar.
Exempel
I följande exempel genereras C2593:
// C2593.cpp
struct A {};
struct B : A {};
struct X {};
struct D : B, X {};
void operator+( X, X );
void operator+( A, B );
D d;
int main() {
d + d; // C2593, D has an A, B, and X
(X)d + (X)d; // OK, uses operator+( X, X )
}
Det här felet kan orsakas av serialisering av en flyttalsvariabel med hjälp av ett CArchive objekt. Kompilatorn identifierar operatorn << som tvetydig. De enda primitiva C++-typerna som CArchive kan serialisera är typerna BYTEmed fast storlek , WORD, DWORDoch LONG. Alla heltalstyper måste gjutas till någon av dessa typer för serialisering. Flyttalstyper måste arkiveras med medlemsfunktionen CArchive::Write() .
I följande exempel visas hur du arkiverar en flyttalsvariabel (f) för att arkivera ar:
ar.Write(&f, sizeof( float ));