класс — C ++: Remove == или любой другой оператор для определенных типов

Если у меня есть класс с именем classA, который имеет перегрузку типов по типу classB и classC, как я могу отключить оператор == для classA, типизируемого как classC?

class classA{
operator classB();
operator classC();

//Remove this comparison possibility:
operator ==(classC firstObject,classC secondObject);
}

Следуйте за этим вопросом:

Неоднозначная перегрузка при использовании многих перегрузок операторов типов

0

Решение

В C ++ 11 вы можете удалять методы.
Это похоже на приватность метода.
Однако, это выражает намерение программиста и приводит к более описательным ошибкам компилятора.

class classA{
operator classB();
operator classC();

//Remove this comparison possibility:
classC operator ==(classC secondObject) = delete;
};
3

Другие решения

Определите оператора и сделайте это private, Тогда никто другой не сможет это назвать.

2

По вопросам рекламы [email protected]