Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2010, 03:52   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Можно ли переопледелить > для строк?

То есть для char* - что бы он не тупо указатели сравнивал?
TwiX вне форума Ответить с цитированием
Старый 13.10.2010, 06:48   #2
sever-42
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 96
По умолчанию

Для встроенный типов перегрузить operator() нельзя. используй strcmp;
include <Qt>
sever-42 вне форума Ответить с цитированием
Старый 13.10.2010, 18:31   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Мне как раз надо в > засунуть strcmp =\
TwiX вне форума Ответить с цитированием
Старый 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
sever-42
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 96
По умолчанию

ну 0 "=", 1 ">", -1 "<"
include <Qt>
sever-42 вне форума Ответить с цитированием
Старый 13.10.2010, 19:13   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

sever-42, он хочет чтоб было так:
Код:
char* a="bla";
char* b="ble";
if(a>b){...}
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.10.2010, 20:42   #7
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Чего-то не получается... Говорит, что функция должна быть членом класса. Даже в классе пробовал переопределять > для строк, но говорит, что оператор > должен принимать 1 параметр:
Код:
class a
{
private:
	bool operator>(char *a,char *b)
	{
		return strcmp(a,b)>0;
	}
public:
	void static cmp(char *a, char *b)
	{
		cout << a>b << endl;
	}
}
TwiX вне форума Ответить с цитированием
Старый 13.10.2010, 23:00   #8
sever-42
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 96
По умолчанию

ну потому что 1 ый параметр это this а второй char *.
class myChar {
char *p;
myChar(char *);
bool operator(myChar *p2) {return strcmp(p, p2)}
};
и наверное правило трех придется реализовать.
в с++ лучше использовать string, с опреаторвми <>=...
include <Qt>
sever-42 вне форума Ответить с цитированием
Старый 13.10.2010, 23:55   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если сравнение со своим классом то один оператор(это то с чем сравниваем)
а я говорил про внешнее переопределение.

посмотри ссыль что я дал, примеры внутреннего переопределения там есть.
(помоему они односторонни, то есть будет myclass>char*, но не наоборот(только внешним))
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.10.2010, 00:34   #10
sever-42
Пользователь
 
Регистрация: 22.04.2010
Сообщений: 96
По умолчанию

внешнее переопределение operator(int, int)?
так вроде нельзя перегрузить этот оператор для встроенных типов или я путаю...
include <Qt>
sever-42 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
фильтр для строк Михаил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