|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.10.2010, 03:52 | #1 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
Можно ли переопледелить > для строк?
То есть для char* - что бы он не тупо указатели сравнивал?
|
13.10.2010, 06:48 | #2 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 96
|
Для встроенный типов перегрузить operator() нельзя. используй strcmp;
include <Qt>
|
13.10.2010, 18:31 | #3 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
Мне как раз надо в > засунуть strcmp =\
|
13.10.2010, 18:38 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
можно попробовать внешним переопределением оператора.
http://cplusplus.com/doc/tutorial/classes2/ смотрим табличку) на вскидку это выйдет bool operator>(char*,char*); Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.10.2010, 18:39 | #5 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 96
|
ну 0 "=", 1 ">", -1 "<"
include <Qt>
|
13.10.2010, 19:13 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
sever-42, он хочет чтоб было так:
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
13.10.2010, 20:42 | #7 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
Чего-то не получается... Говорит, что функция должна быть членом класса. Даже в классе пробовал переопределять > для строк, но говорит, что оператор > должен принимать 1 параметр:
Код:
|
13.10.2010, 23:00 | #8 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 96
|
ну потому что 1 ый параметр это this а второй char *.
class myChar { char *p; myChar(char *); bool operator(myChar *p2) {return strcmp(p, p2)} }; и наверное правило трех придется реализовать. в с++ лучше использовать string, с опреаторвми <>=...
include <Qt>
|
13.10.2010, 23:55 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
если сравнение со своим классом то один оператор(это то с чем сравниваем)
а я говорил про внешнее переопределение. посмотри ссыль что я дал, примеры внутреннего переопределения там есть. (помоему они односторонни, то есть будет myclass>char*, но не наоборот(только внешним)) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
14.10.2010, 00:34 | #10 |
Пользователь
Регистрация: 22.04.2010
Сообщений: 96
|
внешнее переопределение operator(int, int)?
так вроде нельзя перегрузить этот оператор для встроенных типов или я путаю...
include <Qt>
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
фильтр для строк | Михаил2261 | Microsoft Office Excel | 4 | 27.05.2010 16:56 |
Аналог "Сквозных строк" для формирования итоговых строк на печать. | kotyambala | Microsoft Office Excel | 0 | 05.05.2010 13:40 |
case для строк | Sanek_ntsk | Общие вопросы Delphi | 5 | 23.03.2010 17:42 |
Можно ли узнать количество видимых строк в ListView\ListBox? | TwiX | Общие вопросы Delphi | 7 | 03.08.2009 13:03 |
Номера строк для блокнота | __@cmd@__ | Общие вопросы Delphi | 5 | 01.02.2009 16:36 |