Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Michel
0 / 0 / 0
Регистрация: 14.09.2014
Сообщений: 97
#1

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

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

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

Перегрузка оператора сравнения (==) для массивов - C++
Имеется класс-массив. Нужно сравнить два массива при помощи перегрузки оператора (==) Помогите написать пожалуйста!!! class array ...

Перегрузка оператора сравнения для указателя на объект - C++
Имеется класс такого плана: template &lt;class T&gt; class Node{ private: T data; //other stuff }; Внутри класса перегружены...

Перегрузка оператора сравнения - C++
Скажите, как перегрузить оператор сравнения == и другие? попробовал bool operator == (char* A,char* B) выдает : оператору ,не являющемуся...

Перегрузка оператора сравнения - C++
Посмотрите, пжл, правилен ли синтаксис перегрузки оператора сравнения для двух строк: #include &lt;cstdio&gt; class base { public: ...

Перегрузка оператора сравнения - C++
Перегрузка: bool Zakaz::operator==(Zakaz&amp;B) { if(strcmp(Familia_Zak,B.Familia_Zak)==0 &amp;&amp; Street ==B.Street &amp;&amp; Dom == B.Dom &amp;&amp; Kv ==...

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

4
NotNot
30 / 30 / 5
Регистрация: 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
:)
Эксперт С++
4619 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
04.12.2014, 22:30 #3
Перегрузка операторов возможна только для пользовательских типов и их комбинаций со встроенными.
1
Michel
0 / 0 / 0
Регистрация: 14.09.2014
Сообщений: 97
04.12.2014, 23:00  [ТС] #4
NotNot, спаибо большое) а как например это использовать, если как вы сказали то так не получится
0
NotNot
30 / 30 / 5
Регистрация: 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
Привет! Вот еще темы с ответами:

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

Перегрузка оператора operator+() в пользовательском классе (сложение строк) - C++
Хотел научить класс складывать строки, но на моменте освобождения памяти temp происходит ошибка. Поля класса: char* Str, int length...

Сравнить два целых числа, не используя условного оператора, оператора выбора и так же символов сравнения - C++
Добрый день уважаемые программисты, хотелось, чтобы вы помогли мне в решении одной задачи, а именно подсказали идею решения. Задача...

Перегрузка оператора + для стека - C++
Добрый день. Прошу помощи с перегрузкой этой операции. Цель: перегрузить + так,чтобы он складывал элементы двух стеков в третий.Вроде...


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

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

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