![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Gunslinger |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Привет. Пример класса (для компактности писал сделал все в одном файле:
В исходном коде будет нечто вроде:
НО! Мне нужно отдельно сравнивать адреса и значения и, соответственно, выводить разный текст, напр.:
Как написать перегрузку на сравнение адреса/текста, напр.:
, но как это показать в перегрузке сравнения? |
||||||||
|
|||||||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
для этого тебе подойдет обычная функция
mrbrooks, тогда у него тут неправильно работать будет Это сообщение отредактировал(а) Alek86 - 13.10.2008, 10:01 |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
если у тебя метод возвращает строки - то соответсвенно тогда сравнивай как строки - strcmp для char. Ты в чем пишешь?
|
|||
|
||||
| DjoNIK |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
Для начала было бы неплохо
Создать отдельно структуру адрес, и там перегрузить сравнение. В Итоге будет что-то вроде
Это сообщение отредактировал(а) DjoNIK - 13.10.2008, 10:04 -------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
||||
|
|||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
кстати Gunslinger, лучше опреатор сравнения определять так (с констами)
и вообще слово конст использовать настолько часто, насколько это возможно |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
Alek86, ну если строки сравнивает - то можно и так - только если у типа строк перегружен оператор сравнения, либо функцию заюзать для этого типа.
|
|||
|
||||
| DjoNIK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
Alek86, топик выше и метод тоже const
-------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
Добавлено через 5 минут и 32 секунды Вообще для начала нужно определиться какой тип возвращает метод GetAdr() Добавлено через 6 минут и 22 секунды Скорее всего целый |
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
не понял. вроде все правильно, по умолчанию в привейт ставится. mrbrooks, ситуация такая. Есть набор ячеек (MyCels Cell1, Cell2, ...), у каждой ячейки есть адрес и значение. У каждого объекта свой адрес и значение. Задача: проверить, совпадают ли адреса и значения 2х объектов. И GetAddr(), и GetText() возвращают логическое значение. А в главной программе делается обычный if на сравнение адресов и значений 2х объектов. зы не понимаю, зачем разделять адрес и все остальное ззы делаю в билдере. |
|||
|
||||
| DjoNIK |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
-------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
Если логическое значение то
должно прокатить. |
|||
|
||||
| DjoNIK |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
С ростом функционала может потребоваться разбиение. Да и вообще, если ты думаешь о ЧЕМ-ТО как о самостоятельной сущности, то желательно это ЧТО-ТО выделить в класс. А адрес, как я понимаю, и есть такая сущность. Добавлено через 3 минуты и 39 секунд mrbrooks, во-первых не прокатит, ибо
Во вторых, если
Добавлено через 6 минут и 17 секунд И только сейчас задумался... Как так. Ты у ячейки c1 получаешь адрес, то почему у тебя возвращаеться логическое значение. Что оно означает? Как-то странно. -------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
||||||
|
|||||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Да, с разным текстом. Есть вариант возвращать int: 0 - ок, 1- несовпадение адреса, 2 - несовпадение текста. Но по мне этот вариант нехороший. Гораздо понятнее работать с каждым отдельно. Но как перегрузить один и тот же оператор для методов?
DjoNIK, спасибо за поправку. Добавлено через 3 минуты и 43 секунды
так далеко продумывать не могу. можешь какой-нибудь пример на вскидку? Добавлено через 6 минут и 3 секунды DjoNIK, дав вроде логично. Сравниваются x,y объектов. Если они одинаковы - возвращается true. Так же с текстом. Добавлено через 8 минут и 52 секунды блин. с GetAddr и GetText перемудрил. У методов же есть доступ к закрытым членам... У меня ту немного каша, потому что еще думаю сделать замену координат из главной программы. |
|||
|
||||
| DjoNIK |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
хорошее правило. Ведь со временем тебе нужно будет активно работать с твоими "ячейками". Интерфейс доступа будет разрастаться. В нем ты можешь запутаться. Если не ты сам, то пользователь твоего класса. Еще один вариант - случай, когда выполняя операции с ячейкой ты будешь работать с двумя "непонятыми" (или понятными только тебе) int-ми, довольно неприятный. Другое дело - обрабатывать i и j как единое целое. Да и необходимость в коментарий вида
отпала бы сама собой. -------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |