Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 06.02.2013, 11:26   #21
8Observer8
Старожил
 
Регистрация: 02.01.2011
Сообщений: 3,236
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Почему не метод Sum()? То есть, откуда взялось обособление частного случая операторов?
Я кажется понял к чему вы клоните. К тому, что и оператор и метод - это в сущности одно и тоже. Просто оператор - это более короткая, удобная и логичная запись. Эккель называл оператор - "синтаксический сахар". Но суть от этого не меняется, что оператор '+', что метод Sum(). Нужно было мне написать два эквивалентных примера один с оператором '+', а другой с методом Sum(). Будем считать, все знают, что оператор '+' и метод Sum() одно и тоже.

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Класс "ромб" наследует классу "прямоугольник"? Вы хорошо подумали?
Ошибся. Поправил: 'Многоугольник' -> 'Четырёхугольник' -> 'Параллелограмм' -> 'Ромб' -> 'Прямоугольник' -> 'Квадрат'

Последний раз редактировалось 8Observer8; 06.02.2013 в 11:30.
8Observer8 вне форума   Ответить с цитированием
Старый 06.02.2013, 11:34   #22
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Ошибся. Поправил: 'Многоугольник' -> 'Четырёхугольник' -> 'Параллелограмм' -> 'Ромб' -> 'Прямоугольник' -> 'Квадрат'
Теперь класс "прямоугольник" наследует классу "ромб". Вы считаете что эта идея лучше предыдущей?
Abstraction вне форума   Ответить с цитированием
Старый 06.02.2013, 11:54   #23
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,032
По умолчанию

хм...
Я бы вообще иначе сделал цепочку.
"Фигура" -> "Задающаяся двумя координатами" -> "Ромб"
либо
"Фигура" -> "Задающаяся двумя координатами" -> "Многоугольник" -> "Ромб"
ROD вне форума   Ответить с цитированием
Старый 06.02.2013, 11:58   #24
sVasilich
Форумчанин
 
Аватар для sVasilich
 
Регистрация: 16.12.2009
Сообщений: 224
По умолчанию

Цитата:
"Задающаяся двумя координатами" -> "Многоугольник"
Тогда "Четырёхугольник".
Люди бывают 10 типов: те, кто понимают двоичную систему счисления, и те, кто не понимают...
sVasilich вне форума   Ответить с цитированием
Старый 06.02.2013, 12:00   #25
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Я бы вообще иначе сделал цепочку.
А с фигурой, прямоугольником, кругом и квадратом, всё же?..
Abstraction вне форума   Ответить с цитированием
Старый 06.02.2013, 12:02   #26
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,032
По умолчанию

Цитата:
Сообщение от sVasilich Посмотреть сообщение
Тогда "Четырёхугольник".
Не обязательно. Многоугольник можно задать парой координат и кол-вом граней. (предполагается что получится "правильный" многоугольник, но немного сжатый вдоль какой-то из осей).

Вообще, окружность (овал) тоже можно задать двумя координатами (углы прямоугольника, в который она вписана), иногда это может быть удобно.

Последний раз редактировалось ROD; 06.02.2013 в 13:29.
ROD вне форума   Ответить с цитированием
Старый 06.02.2013, 12:55   #27
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,942
По умолчанию

Цитата:
Круг - это тоже многоугольник, со своими свойствами
В ограниенном числовом пространстве компа - да. В натуральном отображении - бесконечная дробь.
Цитата:
К тому, что и оператор и метод - это в сущности одно и тоже.
Не правильно. Оператор сам работает над данными, а метод, - что ты добиваешься от этих данных.
Если по плюсам, то "+"и "-"-у, можно придать много значений, например коньюнкцию сток...
В методе, вы сами определяете суть происходящего. Можете, хоть + на - поменять, в иных блоках, ни к каким последствиям это не приведёт. Пространство имён, однако.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 06.02.2013 в 13:05.
Smitt&Wesson вне форума   Ответить с цитированием
Старый 06.02.2013, 15:18   #28
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,325
По умолчанию

Интерфейс Фигур --> Конкретные фигуры.

Все. Не нужно здесь больше никаких наследований
_Bers вне форума   Ответить с цитированием
Старый 06.02.2013, 15:42   #29
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Интерфейс Фигур --> Конкретные фигуры.

Все. Не нужно здесь больше никаких наследований
Ну вот, пришёл _Bers и всё испортил...
Хотя закрытое наследование квадрата от прямоугольника может оказаться полезным для предотвращения дублирования кода.
Abstraction вне форума   Ответить с цитированием
Старый 06.02.2013, 15:57   #30
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 5,942
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
Не нужно здесь больше никаких наследований
Если следовать вашей модели, придется дублировать одинаковый код и для квадрата и для прямоугольника.
waleri вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инструкция по созданию заготовки для 2D игр (для начинающих) 8Observer8 Gamedev - cоздание игр: Unity, OpenGL, DirectX 21 17.05.2016 18:05
C++ для начинающих a_Alise Помощь студентам 2 27.03.2016 11:00
C++ для начинающих Haruko_ Помощь студентам 0 23.10.2012 21:41
С++ для начинающих Maxim1 Общие вопросы C/C++ 10 31.05.2010 00:22


20:22.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.