![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
FiMa1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: 5 Всего: 6 |
Всем привет!
При чтении статьи "Как функции, не являющиеся методами, улучшают инкапсуляцию" ("Friendship and the Attorney-Client Idiom") под авторством Скотта Мейерса возник вопрос - что автор подразумевал под "в f надо преобразовывать тип его крайнего левого аргумента" в своем алгоритме для разработки классов. Заинтересованным, видимо, придется ознакомится со статьей, что, между прочим, скорее в плюс. Перевод А. И. Легалова Оригинал статьи |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
FiMa1, какая разница - к статье это почти никакого отношения не имеет
![]() Если очень надо, то могу где-то через часик-другой глянуть в самой книге(она у меня дома) и уточнить, что же он этим хотел сказать. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
FiMa1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: 5 Всего: 6 |
Как не имеет? Основополагающий алгоритмец... ![]() |
|||
|
||||
Fazil6 |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
а что собственно вызывает у тебя непонимание? если , например, ты реализуешь оператор как член класса, то неявно левым операндом этого оператора должен быть объект этого класса и, утрировано если представить , что допустим A - это твой класс и для него реализован operator+ как член этого класса, то
но если operator+ существует как свободная функция, то в аргументах будут приведены оба операнда и преобразования станут возможны не только для правого, но и для левого операндов и сложение становится коммутативным. Это сообщение отредактировал(а) Fazil6 - 11.7.2007, 15:05 |
||||
|
|||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Fazil6
Ага. Точно. Я чо-то затупил ![]() Ну так. Ты почитай повнимательней. Он там говорит, что его "правило" неправильно поняли и решил разъяснить одну тонкость. Так вот, эта фраза к тонкости отношения никакого не имеет, но правило без этой фразы уже будет неправильным правилом ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
FiMa1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: 5 Всего: 6 |
Fazil6, archimed7592, спасибо!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |