Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обсуждение статьи "Как функции, не являющиеся...", статья Скотта Мейерса 
V
    Опции темы
FiMa1
Дата 11.7.2007, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Всем привет!
При чтении статьи "Как функции, не являющиеся методами, улучшают инкапсуляцию" ("Friendship and the Attorney-Client Idiom") под авторством Скотта Мейерса возник вопрос - что автор подразумевал под "в f надо преобразовывать тип его крайнего левого аргумента" в своем алгоритме для разработки классов. Заинтересованным, видимо, придется ознакомится со статьей, что, между прочим, скорее в плюс.
Перевод А. И. Легалова
Оригинал статьи



PM   Вверх
archimed7592
Дата 11.7.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



FiMa1, какая разница - к статье это почти никакого отношения не имеет smile.
Если очень надо, то могу где-то через часик-другой глянуть в самой книге(она у меня дома) и уточнить, что же он этим хотел сказать.


--------------------
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
PM Jabber   Вверх
FiMa1
Дата 11.7.2007, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Цитата(archimed7592 @ 11.7.2007,  14:24)
FiMa1, какая разница - к статье это почти никакого отношения не имеет smile.
Если очень надо, то могу где-то через часик-другой глянуть в самой книге(она у меня дома) и уточнить, что же он этим хотел сказать.

Как не имеет? Основополагающий алгоритмец...  smile Глянь, пожалуйста, как будет время.
PM   Вверх
Fazil6
Дата 11.7.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(FiMa1 @  11.7.2007,  13:59 Найти цитируемый пост)
 возник вопрос - что автор подразумевал под "в f надо преобразовывать тип его крайнего левого аргумента" в своем алгоритме для разработки классов

а что собственно вызывает у тебя непонимание?

если , например, ты реализуешь оператор как член класса, то неявно левым операндом этого оператора должен быть объект этого класса и, утрировано если представить , что допустим A - это твой класс и для него реализован operator+ как член этого класса, то 
Код

A a;
a + 1 // выражение корректное, если есть неявное преобразование из int к A
1 + a // ошибка ибо неявное преобразование выполняется только для аргументов, перечисленных в списке аргументов 

но если operator+ существует как свободная функция, то в аргументах будут приведены оба операнда и преобразования станут возможны не только для правого, но и для левого  операндов и сложение становится коммутативным. 

Это сообщение отредактировал(а) Fazil6 - 11.7.2007, 15:05
PM MAIL   Вверх
archimed7592
Дата 11.7.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Fazil6
Ага. Точно.
Я чо-то затупил smile.


Цитата(FiMa1 @  11.7.2007,  14:29 Найти цитируемый пост)
Как не имеет?

Ну так. Ты почитай повнимательней. Он там говорит, что его "правило" неправильно поняли и решил разъяснить одну тонкость. Так вот, эта фраза к тонкости отношения никакого не имеет, но правило без этой фразы уже будет неправильным правилом smile. Кстати, в английском варианте этот "алгоритм" вообще немного иначе(относительно этой фразы) изложен.


--------------------
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
PM Jabber   Вверх
FiMa1
Дата 11.7.2007, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



Fazil6, archimed7592, спасибо!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0958 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.