Во-первых, если это "неоднозначно", я бы ожидал, что другие operator==
будут
присутствует где-то. Но трудно сказать, что это за конкретный компилятор.
на самом деле пытается сказать вам это сообщениями об ошибках.
Во-вторых, вы действительно не показываете достаточно кода, чтобы кто-нибудь мог сказать, что
неправильно. Существует ряд возможных ошибок: класс, в котором
друг объявлен, и эти определения находятся в разных пространствах имен,
подпись друга немного отличается и т. д. Если Inc
пространство имен, эти операторы также должны быть в Inc
. Иначе,
вы объявили operator==
в Inc
в объявлении друга, и
operator==
в глобальном пространстве имен здесь. Оба считаются, которые
приводит к неоднозначности.
(Обычно я обращаюсь с этим, чтобы определить функцию-член,
isEqual
, и пусть оба operator==
и operator!=
вызывают его. Тот
кстати, в объявлении друга нет необходимости.)