![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.01.2008
Сообщений: 20
|
![]()
Пожалуйста, помогите решить задачу. Решена наполовину. Выкладываю полностью, с тем что решила и с тем, где непонятно.
Задание 1 (сделано ниже) Создать класс "Круг" на координатной плоскости. Данные класса - координаты центра круга и радиус. Класс имеет конструктор по умолчанию, конструктор круга единичного радиуса, и конструктор произвольного круга. Определить методы для ввода круга, вывода на экран и определения длины окружности и площади круга. 1. Определить объекты созданного типа, обратиться к методам. 2. Определить указатель на объект созданного типа, обратиться к методам. 3. Определить метод Show для графической иллюстрации объектов класса. Код:
и еще: Задание 3 Наследуемым классом для круга объявить класс "Кольцо", имеющий дополнительный радиус (внутренний) и метод "Площадь". Определить конструктор кольца. Вывести данные на экран с использованием метода базового класса. буду благодарна любой помощи!!! Последний раз редактировалось Stilet; 29.05.2008 в 16:37. |
![]() |
![]() |
![]() |
#2 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Ну насчет перегрузки ++ то это легко.
Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 03.01.2008
Сообщений: 20
|
![]() |
![]() |
![]() |
![]() |
#4 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
А вот мой вариант унарной -- (хотя скажу сразу, может быть неверно)
Код:
![]() |
![]() |
![]() |
![]() |
#5 |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
![]()
Вижу конструктор произвольного и единичного кругов, но не вижу по умолчанию.
Не вижу некоторых методов. Не вижу объявления указателя на объект и его использования. Список инициализации в конструкторах желателен. Непонятно, зачем в + передавать по ссылке. Непонятно, зачем в - передавать по значению. Возвращаемое значение в + и - желателен атрибут const (можно вдобавок inline). В + и - можно сразу вызвать конструктор произвольного круга, повышая вероятность того, что будет применена оптимизация возвращаемого значения. Непонятно зачем методу ++ принимать какой-то параметр. Нет перегрузки постфиксного ++. PS еще friend void operator + и Krug operator +. Код, к сожалению, не могу сейчас написать - так как убиваю время машграфом. Сессия близится... Последний раз редактировалось still_alive; 29.05.2008 в 19:49. Причина: добавлено |
![]() |
![]() |
![]() |
#6 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
А вы не слышали, что при вызове перегруженной операции ++ обращение идет к двум функциям. Одна из них с параметром(ами), а другая - без. Я написал с параметрами. Или это критическая ошибка, из-за которой программа работать не будет?
|
![]() |
![]() |
![]() |
#7 | |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
![]() Цитата:
![]() Не слышал. Мне просто непонятно, зачем нужен тот параметр при передаче в метод, где есть указатель на данный экземпляр, прошу объяснить. |
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 03.01.2008
Сообщений: 20
|
![]()
нам преподаватель сказала всегда задавать параметры)))
и кстати с третьей задачей никто не поможет? надо ко вторнику сдавать, а у меня проблема с написанием кода... вот набросала, надо что-то типа этого: Код:
|
![]() |
![]() |
![]() |
#9 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
По третьему заданию. Там нужно кое-что в базовом классе подправить. Если вы хотите вывести элементы производного класса с помощью функции базового, то нужно обьявить эту функцию виртуальной. А в производном классе задать другую ее реализацию. Вследствие чего компилятор сам определит, какую из них использовать, в зависимости от класса.
Вот код Кольца Код:
![]() |
![]() |
![]() |
![]() |
#10 | ||
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
![]() Цитата:
Вообще пример для наследования выбран неудачно. Как связаны кольцо и круг? Кольцо - не круг, а круг - не кольцо) Совсем маленький пример: Код:
Цитата:
Так как насчет ответа на мой вопрос о параметре? |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одиночное наследование Виртуальные функции | Brunette | Помощь студентам | 3 | 08.05.2008 19:23 |
Наследование: абстрактный класс | zak | Общие вопросы C/C++ | 4 | 22.12.2007 13:49 |
Конструктор запросов | kaa | БД в Delphi | 12 | 20.12.2006 16:45 |