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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 22:46   #1
MasterSporta
Пользователь
 
Регистрация: 13.12.2010
Сообщений: 56
По умолчанию Полиморфизм

Здравствуйте, уважаемые форумчане!
Кто хорошо разбирается в полиморфизме, прошу подсказать. Заранее выказываю большую благодарность.

Итак, стоит следующая задача: есть абстрактный базовый класс Shape(форма). От него есть два производных: Rectangle (четырехугольник) и Triangle (треугольник). Эти два производных классах наследую интерфейс базового класса, а именно некую функцию для установки координат точек. НО! У четырехугольника этих точек четыре (то есть в функцию надо передать 8 параметров), а у треугольника три (шесть параметров). Как в данном случае объявить виртуальную функцию для установки позиции в базовом классе (пускай это будет setPosition()) и как ее объявить в производных классах для переопределения???
MasterSporta вне форума Ответить с цитированием
Старый 10.04.2011, 22:58   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

setPosition должно устанавливать одну из точек формы, например верхний левый угол описанного вокруг фигуры прямоугольника. Или центр.

А задание угловых точек общего интерфейса не должно иметь. Тем более, не у всех shape-ов есть понятие угла (взять, скажем, эллипс).

Цитата:
то есть в функцию надо передать 8 параметров
этааа, у тебя тут ООП или где?
4 точки = 4 параметра, сделай класс Point с методами int x() const, int y() const, void setX(int x), void setY(int y) и конструктором Point(int x, int y).
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su

Последний раз редактировалось Obey-Kun; 10.04.2011 в 23:13.
Obey-Kun вне форума Ответить с цитированием
Старый 10.04.2011, 23:44   #3
MasterSporta
Пользователь
 
Регистрация: 13.12.2010
Сообщений: 56
По умолчанию

Obey-Kun
Спасибо Вам за подсказку. Теперь понял как это реализовать))
MasterSporta вне форума Ответить с цитированием
Старый 10.04.2011, 23:46   #4
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Можно также сделать общие методы setWidth(int), setHeight(int) и setSize(Size), которые растягивали бы или сжимали фигуру. вот...
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
полиморфизм и констркуторы blacktener Общие вопросы C/C++ 4 06.03.2011 15:47
полиморфизм slayerblya Общие вопросы C/C++ 1 27.02.2011 01:43
Полиморфизм mister2010 Общие вопросы C/C++ 30 24.05.2010 01:07
Полиморфизм. Пример. Scratch Общие вопросы C/C++ 53 28.09.2008 18:46