![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
DjoNIK, зачем делать в данном случае постоянную функцию-член? просто для красного словца? как эта функция изменит вызывающий ее объект? обоснуй пожалуйста.
ибо прокатит - так как автор сказал |
|||
|
||||
| DjoNIK |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 320 Регистрация: 28.9.2006 Где: Питер/Георгиевск Репутация: 4 Всего: 5 |
Нет, для наглядности. Чтобы небыло соблазна, чтобы читающий объявления метода не глядя в определение мог понять все. Может тогда и в
можно обойтись без const? Мы ведь все-равно не меняем объект переданный по ссылке. это ты говорил про использование const по-возможности везде Добавлено через 4 минуты и 36 секунд не прокатит, ибо, судя по первому посту, автор собирался сравнивать адреса через метод GetAddr(), а значения ячеек через
-------------------- - Плесни-ка мне холодного кипятку. - Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды? - Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку. (разговор петербуржца и москвича) |
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
я не имел ввиду использовать постоянную функцию-член. Дело в том что и использования const в сигнатуре функции при сравнение результата метода GetAddr() даст ошибку при компиляции. По этому рабочий вариант как раз будет тот что я давал в начале а именно:
Что бы использовать const в сигнатуре функции нужно обращаться уже не к методам класса а к его элементам определяющим результат метода GetAddr(). |
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Парни, погодите! Я похоже всех нас запутал! (1)Можно перегрузить == и в нем проверять сразу и адреса, и текст. (2)Можно разнести это сравнение (чтобы в главной программе опредилить, что именно не совпало и выдать соответствующее предупреждение). Чтобы реализовать 2, нужно 2 раза перегрузить ==.
Код можно написать как в разных перегрузчиках, так и в методах, которые будут вызываться этими перегрузчиками. Вроде так. Тогда какой вариант выбрать, чтобы разделить одно от другого? == - это не текст, и аргументы - целые объекты. Может сделать эти GetAddr() и GetText() и запихнуть в один ==, но при этом передавая еще один аргумент - флаг, что именно сравниваем?
|
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
будьте проще :
Это сообщение отредактировал(а) mes - 13.10.2008, 17:13 |
||||
|
|||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
Gunslinger, так я не понял, зачем тебе вообще этот == сдался? операторы только для удобства добавлены, не более, и пытаться весь свой код под них подстраивать не нужно
или создай функцию, как я тебе в 3м посте написал или сделай, как посоветовал mes |
|||
|
||||
| Gunslinger |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Большое спасибо за помощь. Со сравнением действительно уперся не в тему.
При компиляции пишет ошибки: [C++ Error] MyCells.h(8): E2303 Type name expected и [C++ Error] MyCells.h(8): E2303 Type name expected Вот описание:
Выдает ошибку на Address GetAddr(); Где-то ошибся. Реализация:
|
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
структуру Address опиши в хидаре
|
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Описывал. Выдает кучу ошибок:
[C++ Error] MyCells.cpp(5): E2238 Multiple declaration for 'MyCells' [C++ Error] MyCells.h(10): E2344 Earlier declaration of 'MyCells' [C++ Error] MyCells.cpp(20): E2108 Improper use of typedef 'Address' и т.п., вытекающие следом. Описуха хедера:
Если за концом структуры убрать; пишет: [C++ Error] MyCells.h(10): E2176 Too many types in declaration и встает на class MyCells { Это сообщение отредактировал(а) Gunslinger - 14.10.2008, 13:42 |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
из cpp вот это чудо
выкинь Добавлено через 1 минуту и 47 секунд в плюсах не разрешено разделенное определение класса так что класс MyCells собери в 1 (в ашнике) в cpp оставь реализации функций и вообще почитай учебник |
|||
|
||||
| Gunslinger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
Alek86, убрал. только теперь опять вернулись к ошибкам моего утреннего поста:
[C++ Error] MyCells.h(8): E2303 Type name expected и [C++ Error] MyCells.h(8): E2139 Declaration missing ; Указывает на Address GetAddr(); в хедере. Почему private надо было удалить? Адресная структура должна быть открыта? А куда же девать String Text? |
|||
|
||||
| mrbrooks |
|
||||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
Gunslinger, ну удалять! а перенести.
Добавлено @ 14:53 здесь же все сказано Добавлено @ 14:56
Это сообщение отредактировал(а) mrbrooks - 14.10.2008, 14:57 |
||||
|
|||||
| Gunslinger |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: 1 Всего: 3 |
mrbrooks, добавления не было. сейчас зашел - увидел.
Alek86, почитаю, только прогу добью. Может я специздание Страуструпа не той стороной смотрел, но у него вроде в хедере - интерфейс, а в cpp - его реализация и приватные свойства. Вот готовые файлы: хедер:
реализация:
Ошибок 2. Закомментировал в код. Это сообщение отредактировал(а) Gunslinger - 14.10.2008, 16:17 |
||||
|
|||||
| Alek86 |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
поменяй
и так далее |
||||
|
|||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 2 Всего: 306 |
Gunslinger, камрад ты внимательно смотрел тот код который я тебе специально подправил?
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |