Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
"идентификатор оператора" неоднозначно
Замечания
Для перегруженного оператора определяется несколько возможных операторов.
Эта ошибка может быть исправлена, если вы используете явный приведение для одного или нескольких фактических параметров.
Примеры
В следующем примере возникает ошибка 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фиксированного размера , WORDDWORDиLONG. Все целые типы должны быть приведены к одному из этих типов для сериализации. Типы с плавающей запятой должны архивироваться с помощью CArchive::Write() функции-члена.
В следующем примере показано, как архивировать переменную с плавающей запятой (f) для архивации ar:
ar.Write(&f, sizeof( float ));