![]() |
|
Модераторы: bsa |
![]()
|
|
| Doublefaced |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.12.2008 Репутация: нет Всего: нет |
Дали на дом задачку и как-то застрял.. до этого с наследованием не работал вообще(
есть родительский класс Fraction (2 поля) он работает с дробями у него есть класс-наследник Compound (наследует поля + еще одно новое..этот класс добавляет целую часть к дроби.. т.е. делает её смешенной) поле а - числитель поле b - знаменатель поле c - целая часть метод призван сократить неправильную дробь и увеличить целую часть
Преподаватель дал заглушку "Compound Compound::In (Fraction x)" вопрос: 1) если мы передаем "Fraction x" - с двумя полями, то потом при работе третье поле само создается? 2) почему при вызове (значения передаются, просто вырезал кусок)
возникает ошибка "error C2660: 'In' : function does not take 0 parameters"? метод же применяется к объекту.. к чему передавать параметры? Догадываюсь, что ошибка глупая, но прошу разморочить меня... |
||||
|
|||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
метод объявлен, как принимающей параметр типа Fraction, значит придется передавать ) Добавлено через 1 минуту и 13 секунд
а где в коде используется аргумент x ?! Добавлено через 3 минуты и 52 секунды
абсолютно не понял вопросa. у кого должно создаться третье поле ? |
||||
|
|||||
| Doublefaced |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.12.2008 Репутация: нет Всего: нет |
из простой дроби делает смешенную.. поправил... как теперь применить метод класса Compound к аргументам класса Fraction? "абсолютно не понял вопросa. у кого должно создаться третье поле ? " - спс.. не у кого) я проспал( |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Это сообщение отредактировал(а) mes - 3.4.2009, 18:03 |
|||
|
||||
| Doublefaced |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.12.2008 Репутация: нет Всего: нет |
с моим кодом метод можно будет применять к аргументам класса Fraction? как это будет выглядеть? просто с Вашим вариантом он отказывается сотрудничать... Это сообщение отредактировал(а) Doublefaced - 3.4.2009, 18:30 |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
неудивительно, я ведь вам показал пример. В частности доступ к переменным класса Fraction приватный, и поэтому x.a надо заменить на вызов соответствующего Геттера. Я не телепат и не вижу описаний Ваших классов, чтоб подсказать какой. |
|||
|
||||
| Doublefaced |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.12.2008 Репутация: нет Всего: нет |
ну и далее методы... и
Так достаточно информации, чтобы подсказать? |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
во первых переменные лучше (хотя и не обязательно) объявлять в private секции нопока не разберетесь оставьте их в protected . во вторых : Вы дважды включили объект типа Fraction в объект типа Compound: 1. наследованием 2. включением (эту строчку следует убрать) В третьих исходя из вышеприведенного кода непонятно, что Вы имели ввиду, когда говорили: |
|||
|
||||
| Doublefaced |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.12.2008 Репутация: нет Всего: нет |
"во первых переменные лучше (хотя и не обязательно) объявлять в private секции
нопока не разберетесь оставьте их в protected ." - хоть и новенький, но поспорю) поля приват при любом наследовании не видит наследник.. паблик не нужно.. так что ршил протектед сделать.. так они будут "приватными" для наследника... суждения верны? "Вы дважды включили объект типа Fraction в объект типа Compound: 1. наследованием 2. включением (эту строчку следует убрать)" не очень понял.. вроде оба раза необходимы... "В третьих исходя из вышеприведенного кода непонятно, что Вы имели ввиду, когда говорили..." - он не работает так.. просто... мой код верен.. я понимаю, что о не оптимален.. но как-то чисто для восприятия.. не хотел бы его менять.. когда свое, пусть и чуть-чуть корявое.. оно легче воспринимаеься |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| Doublefaced |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.12.2008 Репутация: нет Всего: нет |
я говорил только о цикле while
я про это а вот про наследование и передачу параметров я не спорю... while вроде корректно написан... с остальным плохо... не цепляйтесь плз к словам( |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
ну так выражайтесь ясней. в вашем коде в цикле while используется временный объект , который уничтожается по окончанию функции и результ всех проведенных операций теряется бесследно - не думаю что это правильно ;) а я не буду спорить ) это к теме не относится и было предложено лишь для улучшения, как и цикл for зачем ?
|
|||
|
||||
| Doublefaced |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.12.2008 Репутация: нет Всего: нет |
там же
return f; т.е. в конце концов методу присваивается значение f после всех преобразований... и мы можем его использовать...так? Добавлено через 4 минуты и 55 секунд ой ёёё) я прозрел)))) спс за терпение.. сейчас переделаю) |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| Doublefaced |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.12.2008 Репутация: нет Всего: нет |
можем, но в объекте эта информация то не остается .. Зачем тогда поля, если Вы собрались возвращать информацию через ретурн ?
спс с этим разобрался.. а еще.. можете подсказать алгоритм...сократить дробь... типа 2/4, чтобы дешево было.. относительно писанины? |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |