![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.12.2010
Сообщений: 56
|
![]()
Здравствуйте, уважаемые форумчане!
Кто хорошо разбирается в полиморфизме, прошу подсказать. Заранее выказываю большую благодарность. Итак, стоит следующая задача: есть абстрактный базовый класс Shape(форма). От него есть два производных: Rectangle (четырехугольник) и Triangle (треугольник). Эти два производных классах наследую интерфейс базового класса, а именно некую функцию для установки координат точек. НО! У четырехугольника этих точек четыре (то есть в функцию надо передать 8 параметров), а у треугольника три (шесть параметров). Как в данном случае объявить виртуальную функцию для установки позиции в базовом классе (пускай это будет setPosition()) и как ее объявить в производных классах для переопределения??? |
![]() |
![]() |
![]() |
#2 | |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
![]()
setPosition должно устанавливать одну из точек формы, например верхний левый угол описанного вокруг фигуры прямоугольника. Или центр.
А задание угловых точек общего интерфейса не должно иметь. Тем более, не у всех shape-ов есть понятие угла (взять, скажем, эллипс). Цитата:
![]() 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. |
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.12.2010
Сообщений: 56
|
![]()
Obey-Kun
Спасибо Вам за подсказку. Теперь понял как это реализовать)) |
![]() |
![]() |
![]() |
#4 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
![]()
Можно также сделать общие методы setWidth(int), setHeight(int) и setSize(Size), которые растягивали бы или сжимали фигуру. вот...
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
полиморфизм и констркуторы | 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 |