'operator identifier' 模棱兩可
備註
針對多載運算子定義了一個以上的可能運算符。
如果您在一或多個實際參數上使用明確轉換,可能會修正此錯誤。
範例
下列範例會產生 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 )
}
此錯誤可能是使用 CArchive 物件串行化浮點變數所造成。 編譯程式會將 << 運算子識別為模棱兩可。 唯一可以串行化的基本C++型 CArchive 別是固定大小型 BYTE別 、 WORD、 DWORD和 LONG。 所有整數類型都必須轉換成下列其中一種類型以進行串行化。 浮點類型必須使用成員函式封存 CArchive::Write() 。
下列範例示範如何將浮點變數封f存至封存 ar:
ar.Write(&f, sizeof( float ));