Re[8]: квадратики
От: LuciferMoscow Россия  
Дата: 09.09.05 10:09
Оценка:
Здравствуйте, execve, Вы писали:

E>Здравствуйте, LuciferMoscow, Вы писали:


E>>>operator+ совсем не обязан иметь семантику "оператор сложения".

E>>>Вспомни про operator<< для потоков, который возвращает неконстантную ссылку.
LM>>Не обязательно, но скорее всего человек сопровождающий код будет надеятся на некоторое поведение данного оператора.

E>Точно так же, как и для operator<<


LM>>Верю, что ты можешь привести пример, когда это не так.

E>
E>nonstd::cout + "Hello, world" + nonstd::endl;
E>

Пример плохой. И не по теме. Там был Something T::opearator+(const T&)

LM>>P.S. Ссылку на книгу Саттера и Александреску давать надо?

E>Конечно. Желательно на введение или на содержание.
E>P.S. Ссылку на что именно?
http://www.ozon.ru/context/detail/id/2381848/
Buy and read
Re[8]: квадратики
От: fomiha  
Дата: 09.09.05 10:27
Оценка:
Здравствуйте, Alexey_ch, Вы писали:

A_>Здравствуйте, fomiha, Вы писали:


F>>от которого должен наследоваться квадрат, но никак не квадрату.

A_>Даже если оба класса унаследованы от абстрактной Фигуры с виртуальным Draw(), можно не писать код рисования дважды, унаследовав квадрат от прямоугольника.
И какую смысловую нагрузку будет нести класс квадрат (тогда он будет просто частный случай прямоугольника)
если у него нет отличий от прямоугольника в таком случае?

A_>>>P.S. Квадрат нельзя описать одним свойством, т.к. без знания, что с этим свойством делать, квадрат не нарисуется И это знание как раз заключено в методе Draw().

F>>почему нельзя ))
F>>свойство одно — длина стороны
A_>Потому что следуя такой логике можно унаследовать прямоугольник от круга У него тоже "одно свойство".
да можно от чего угодно с одним свойством )) — если того потребуют условия задачи, главное знать контекст (зачем вообще эта иерархия нужна)
да и еще как понимать эти фигуры (ведь их можно понимать как массив длин сторон и массив углов — тогда иерархия вообще бессмысленна, а можно идти от простого к сложному)
Re[6]: квадратики
От: ilya_ny  
Дата: 09.09.05 11:31
Оценка: :)
Здравствуйте, LuciferMoscow, Вы писали:

LM>>>>Он прав. Возврат ссылки на локальную переменную.

_>>>вот это он так подковырнуть хотел. на что я ответи, что в самом тьупом случае можно завести глобалную переменную и возвращать ссылку на нее... и все работать будет — цель достигнута
LM>>multithreading.
LM>ilya_ny, Вы поняли, что Ваш хак летит в трам-тарары?

не
в том вопросе главное чтобы не валилось. а логика не втором месте
Re[9]: квадратики
От: Alexey_ch Швейцария  
Дата: 09.09.05 12:14
Оценка:
Здравствуйте, fomiha, Вы писали:
F>>>от которого должен наследоваться квадрат, но никак не квадрату.
A_>>Даже если оба класса унаследованы от абстрактной Фигуры с виртуальным Draw(), можно не писать код рисования дважды, унаследовав квадрат от прямоугольника.
F>И какую смысловую нагрузку будет нести класс квадрат (тогда он будет просто частный случай прямоугольника)
F>если у него нет отличий от прямоугольника в таком случае?
Чего-нибудь уникальное именно для квадрата . Например, вычисление диаметра вписанной окружности
GetInscreibedCircleDiameter() {return m_nWidth;}


Плюс, если инициализация оъекта производится в конструкторе, то у квадрата всегда будет одинаковая длина и ширина.
class Square : public Rectangle
{
public:
    Square (int nSide) : Rectangle(nSide, nSide) {};
}
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Re[9]: квадратики
От: Aptekar Россия  
Дата: 09.09.05 12:27
Оценка: +1
Здравствуйте, Ulin, Вы писали:
U>Цитата из вышеприведенной статьи:
Точно на тех же основаниях и прямоугольник нельзя наследовать от квадрата.
Re[10]: квадратики
От: fomiha  
Дата: 09.09.05 13:07
Оценка:
Здравствуйте, Alexey_ch, Вы писали:

AA_>Чего-нибудь уникальное именно для квадрата . Например, вычисление диаметра вписанной окружности

A_>
A_>GetInscreibedCircleDiameter() {return m_nWidth;}
A_>


что тут уникального — вписанная в квадрат окружность — частный случай вписанного в прямоугольник овала ))
Re: Задания на собеседовании.
От: karkadil  
Дата: 09.09.05 15:01
Оценка: :))
Здравствуйте, Sh1ZoID, Вы писали:

SZI> И когда я сожусь за комп, я не то, что сообразить ничего не могу, я по клавишам-то с трудом попадаю(серьёзно!) .



Эээ, не знаю, насколько мой метод подойдет...
Я перед собеседованиями напиваюсь.
Утром — похмелье, голова болит, кружится, тошнит...
Приходишь на собеседование и просто не можешь нервничать... Так как сознание полностью сконцентрировано на состоянии, то ответы приходят откуда-то из подсознания.

Главное, конечно, заставить туда прийти в принципе.

ЗЫ Это не шутка, мне действительно помогало.
Re[8]: квадратики
От: LuciferMoscow Россия  
Дата: 12.09.05 18:28
Оценка: 1 (1) +1
Отвечаю на последнее сообщение, не видя корней(лень искать) спора о квадрате и прямоугольнике.

Ссылаюсь на книгу Саттер,Александреску "Стандарты программирования на С++".
Совет 37:

Открытое наследование означает заменимость. Наследование надо не для повторного использования, а чтобы быть повторно использованным

scipped

Наиболее часто в этой связи два класса — квадрат и прмоугольник.scipped
Квадрат не может быть корректно унаследован от прямоугольника, т.к. SetWidth не изменяем его высоту
Прямоугольник не может быть коррекно унаследован от квадрата, т.к. его клиенты полагают, что для нахождения его площади достаточно возвести в квадрат его ширину


P.S. Цитата переврана, но надеюсь смысл сохранил: "Наследующий класс обязан сохранять инварианты наследуемого"
Re[6]: квадратики
От: GarryIV  
Дата: 12.09.05 21:02
Оценка: 2 (1) -1
Здравствуйте, Me_, Вы писали:

F>>...

F>>No! A square might be a rectangle, but a Square object is definitely not a Rectangle
F>>object. Why? Because the behavior of a Square object is not consistent with the
F>>behavior of a Rectangle object. Behaviorally, a Square is not a Rectangle! And it
F>>is behavior that software is really all about.
F>>...

Me_>А вот про поведение ничего сказано не было на собеседовании. Если основываться только на формах — то наследование прямоугольник->квадрат — абсолютно правильно.


Этот случай про квадрат и прямоугольник настолько популярен в литературе посвященной ООП что незнание этого вопроса наталкивает на мысль что ни одной книжки о ООП Вы не читали и что эта тема Вас мало интересует а следовательно уровень Ваших знаний в области ООП недостаточен. Ваши посты только убедили меня в этом мнении.
WBR, Igor Evgrafov
Re[2]: Задания на собеседовании.
От: CreatorCray  
Дата: 13.09.05 04:35
Оценка:
Здравствуйте, karkadil, Вы писали:

K>Я перед собеседованиями напиваюсь.

K>Утром — похмелье, голова болит, кружится, тошнит...
Ну и как? Взяли?
И как интервьюеры к такому состоянию относятся?
Re[2]: Задания на собеседовании.
От: Sh1ZoID Россия http://vkontakte.ru/id6263850
Дата: 13.09.05 06:12
Оценка:
Здравствуйте, karkadil, Вы писали:

K>Здравствуйте, Sh1ZoID, Вы писали:


SZI>> И когда я сожусь за комп, я не то, что сообразить ничего не могу, я по клавишам-то с трудом попадаю(серьёзно!) .



K>Эээ, не знаю, насколько мой метод подойдет...

K>Я перед собеседованиями напиваюсь.
K>Утром — похмелье, голова болит, кружится, тошнит...
K>Приходишь на собеседование и просто не можешь нервничать... Так как сознание полностью сконцентрировано на состоянии, то ответы приходят откуда-то из подсознания.

K>Главное, конечно, заставить туда прийти в принципе.


K>ЗЫ Это не шутка, мне действительно помогало.


Только вот руки в два раза сильней трестись будут

ЗЫ Нет, спасибо, конечно, за совет, вот только в таком состоянии всё будет только хуже(фор ми)
Re[7]: квадратики
От: LuciferMoscow Россия  
Дата: 13.09.05 06:15
Оценка:
Удалено избыточное цитирование. — SchweinDeBurg

Здравствуйте, GarryIV, Вы писали:

GIV>Этот случай про квадрат и прямоугольник настолько популярен в литературе посвященной ООП что незнание этого вопроса наталкивает на мысль что ни одной книжки о ООП Вы не читали и что эта тема Вас мало интересует а следовательно уровень Ваших знаний в области ООП недостаточен. Ваши посты только убедили меня в этом мнении.


Знаете, я немало читал книг. Просто данный пример не встечал. А судить по тому, что "Ты не знаешь, какой функцие пишется в реестр","Чем отличается квадрат от прямоугольника" это
Re[3]: Задания на собеседовании.
От: LuciferMoscow Россия  
Дата: 13.09.05 06:17
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, karkadil, Вы писали:


K>>Я перед собеседованиями напиваюсь.

K>>Утром — похмелье, голова болит, кружится, тошнит...
CC>Ну и как? Взяли?
CC>И как интервьюеры к такому состоянию относятся?
Я один раз проходил собеседование в таком состояние. Самое сложное было говорить(пить очень хотелось). Никому не рекомендую

P.S. Мне сделали предлдожения
p.S.S. Я предпочел более выгодное
[от модератора]
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 13.09.05 06:31
Оценка:
Строгое предупреждение за нарушение п.5 обязательных правил — "Оскорблять и обзывать собеседника, ставить под сомнение его профессиональную квалификацию, придираться к его нику, указывать на орфографические и синтаксические ошибки и т.д. запрещается."
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by Iron Maiden — Dance Of Death ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
[от модератора]
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 13.09.05 06:32
Оценка:
Строгое предупреждение за оверквотинг.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by Iron Maiden — Dance Of Death ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: [от модератора]
От: LuciferMoscow Россия  
Дата: 13.09.05 07:03
Оценка: -1
Здравствуйте, SchweinDeBurg, Вы писали:

Строгое предупреждение за нарушение п.5 обязательных правил — "Оскорблять и обзывать собеседника, ставить под сомнение его профессиональную квалификацию, придираться к его нику, указывать на орфографические и синтаксические ошибки и т.д. запрещается."

Тогда может обоим по рогам надо?
GarryIV за то, что подставил под сомнение профессионализм автора темы как программиста, а мне за точно сделал тоже замое в отношение GarryIV как интервьюера?

Строгое предупреждение за оверквотинг.

Так может сделаем нормальный движок, который не провоцирует на оверквотинг?
А так: гадить на улице запретили, а туалеты все позакрывали. Вот и думай: либо в штаны нагадить, либо на зону попасть
Re[2]: [от модератора]
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 13.09.05 07:12
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:

LM>Так может сделаем нормальный движок, который не провоцирует на оверквотинг?


Какой способ цитирования "отвечаемого" сообщения вы предпочитаете?
Автор: SchweinDeBurg
Дата: 25.08.05
Вопрос: Какой способ цитирования "отвечаемого" сообщения вы предпочитаете?


Re[4]: Дополнение
Автор: SchweinDeBurg
Дата: 25.08.05
(ну и вся ветка to SchweinDeBurg по поводу оверквотинга
Автор: execve
Дата: 25.08.05
).

P.S.
Отвечать на сообщения "[от модератора]" нужно по адресу moderator@rsdn.ru
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by Iron Maiden — Paschendale ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[2]: [от модератора]
От: Dog  
Дата: 13.09.05 07:52
Оценка: :)
LM>

LM>Строгое предупреждение за оверквотинг.

LM>Так может сделаем нормальный движок, который не провоцирует на оверквотинг?
Присоединяйтесь
...где-то между собакой и богом...
Re[3]: [от модератора]
От: LuciferMoscow Россия  
Дата: 13.09.05 07:56
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Здравствуйте, LuciferMoscow, Вы писали:


LM>>Так может сделаем нормальный движок, который не провоцирует на оверквотинг?


SDB>Какой способ цитирования "отвечаемого" сообщения вы предпочитаете?
Автор: SchweinDeBurg
Дата: 25.08.05
Вопрос: Какой способ цитирования "отвечаемого" сообщения вы предпочитаете?


SDB>Re[4]: Дополнение
Автор: SchweinDeBurg
Дата: 25.08.05
(ну и вся ветка to SchweinDeBurg по поводу оверквотинга
Автор: execve
Дата: 25.08.05
).


SDB>P.S.

SDB>Отвечать на сообщения "[от модератора]" нужно по адресу moderator@rsdn.ru
Я там и отвечал и голосовал.
Re[9]: квадратики
От: Alexey_ch Швейцария  
Дата: 13.09.05 08:06
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:
LM>

Наследование надо не для повторного использования, а чтобы быть повторно использованным

Мысль не осилил

LM>

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

Значит, например, виртуальная CWnd::WndProc() это чистое зло Сам CWnd не знает, что там происходит.
Мне кажется, что Александреску пережевывает надуманную проблему. SetWidth() может быть объявлена как private. И почему клиенты класса Прямоугольник должны возводить GetWidth() в квадрат? Во-первых они знают, что это прямоугольник, а не квадрат. И если очень хочется работать с этими классами через единый интерфейс, то никто не мешает написать базовую виртуальную 2DShape::GetArea()

LM>P.S. Цитата переврана, но надеюсь смысл сохранил: "Наследующий класс обязан сохранять инварианты наследуемого"

А каждая база данных должна быть нормализована И еще мир во всем мире...
... << RSDN@Home 1.1.4 beta 7 rev. 0>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.