struct subject
{
int c;
int m;
};
const bool operator > ( subject* first, subject* second )
{
return first->c > second->c;
}
Ошибка:
Overloaded 'operator>' must have at least one parameter of class or enumeration type.
Что не так?
Перегруженные операторы в языке С++ перегружаемы только для класс-типов или enum-типов. Любой перегруженный оператор должен иметь как минимум один параметр класс-типа или enum-типа (или являться ссылкой на такие типы).
У вас оба параметра перегруженного оператора имеют тип "указатель". Тип "указатель" не является ни класс-типом или enum-типом. Поэтому ваша перегрузка не является корректной.
Вот что не так.
А что с этим делать - зависит от того, чего именно вы пытаетесь достичь и почему вдруг вы пытаетесь перегрузить оператор именно для указателей. Ваш вопрос не очень-то богат деталями на эту тему.
Агрументами в данном случае должны быть экземпляры или ссылки (лучше, константные), а не указатели. А вот const при возвращаемом значении - ни к чему. То есть:
bool operator > ( const subject& first, const subject& second )
{
return first.c > second.c;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
VS пишет что не может инициализировать ссылки (&char, &string) и подчеркивает fun(s1[1], s1);
ЗдравствуйтеЯ думаю поставить компилятор MingW для SublimeText 3, вот ихний сайт: "http://mingw
Добрый день, вот есть у меня двумерный вектор vector< vector<int> > arr Как мне его параметром передать в метод?