Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Michel
0 / 0 / 1
Регистрация: 14.09.2014
Сообщений: 97
#1

Перегрузка оператора сравнения для строк - C++

04.12.2014, 21:17. Просмотров 523. Ответов 4
Метки нет (Все метки)

В общем мне нужно сделать такую перегрузку, что бы вместо символа, например, "<" выполнялось сравнение через strcmp, например строка strcmp(char, char1)>0 что бы вместо strcmp писать другой символ.. помогите пожалуйста, ибо я не знаю как..
http://www.cyberforum.ru/cpp-beginners/thread765605.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2014, 21:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перегрузка оператора сравнения для строк (C++):

Перегрузка оператора сравнения для указателя на объект
Имеется класс такого плана: template &lt;class T&gt; class Node{ private: T...

Перегрузка оператора сравнения
Скажите, как перегрузить оператор сравнения == и другие? попробовал bool...

Перегрузка оператора сравнения
Перегрузка: bool Zakaz::operator==(Zakaz&amp;B) {...

Перегрузка оператора сравнения
Посмотрите, пжл, правилен ли синтаксис перегрузки оператора сравнения для двух...

Перегрузка оператора сравнения и сортировка
Имеется класс строка на основе vector&lt;char&gt;. У меня не получается перегрузить...

4
NotNot
30 / 30 / 6
Регистрация: 23.10.2014
Сообщений: 107
04.12.2014, 21:35 #2
Например так:
C++
1
2
3
4
5
6
7
8
9
10
class A {
    const char * m_cstring;
  public:
    /* ... */
    bool operator<(const A & rhs);
};
 
bool A::operator<(const A & rhs) {
  return (strcmp(m_cstring, rhs.m_cstring) < 0);
}
Добавлено через 6 минут
Если имелось ввиду что-то такое:
C++
1
"string1" < "string2"
то ничего не поделать.
0
Tulosba
:)
Эксперт С++
4746 / 3240 / 496
Регистрация: 19.02.2013
Сообщений: 9,046
04.12.2014, 22:30 #3
Перегрузка операторов возможна только для пользовательских типов и их комбинаций со встроенными.
1
Michel
0 / 0 / 1
Регистрация: 14.09.2014
Сообщений: 97
04.12.2014, 23:00  [ТС] #4
NotNot, спаибо большое) а как например это использовать, если как вы сказали то так не получится
0
NotNot
30 / 30 / 6
Регистрация: 23.10.2014
Сообщений: 107
04.12.2014, 23:11 #5
Как перегрузить operator< для класса, я показал. Если строки в стиле C не оборачивать в класс или структуру, то только использовать strcmp. Ну а если оборачивать, то все сделано до нас (смотреть std::string).
1
04.12.2014, 23:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2014, 23:11
Привет! Вот еще темы с решениями:

Перегрузка оператора сравнения. Вектор
Здравствуйте. Допустим есть класс. class Sector { private: int...

Перегрузка оператора сравнения (сравнивать только по одному полю)
Помогите пожалуйста. совсем не выходит перегрузить оператор == класса Book так,...

Перегрузка оператора operator+() в пользовательском классе (сложение строк)
Хотел научить класс складывать строки, но на моменте освобождения памяти temp...

Перегрузка операторов сравнения для класса Rational
Прохожу курс вот условие Еще одна важная группа операторов, которые полезно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru