Аргумент Скотта Мейера о том, что функции, не являющиеся членами, увеличивают инкапсуляцию и допускают более элегантный дизайн (дизайн), кажется мне очень верным.
Смотрите здесь: Артикул
Все же у меня есть проблемы с этим. (И, похоже, и другие, особенно разработчики Библиотеки, которые обычно полностью игнорируют это)
Код обычно выглядит лучше и логичнее, когда я использую функции-члены. Это может быть приобретенным вкусом, и просто нужно привыкнуть сначала смотреть на алгоритмы, а затем на объекты. (Дрожь)
Так что, возможно, у меня есть только одна проблема:
С помощью функций-членов me AND my IDE знает, что может делать класс.
Для меня это огромно! Я не использую ничего, что не поддерживает завершение кода функции-члена для программирования. В хорошо разработанных библиотеках это полностью заменяет документацию для меня.
И даже если бы я посмотрел на api doc, просмотр списка участников кажется абсолютно естественным, логичным, и я могу быть уверен, что это конец. Если метода там нет, я могу с уверенностью предположить, что его не существует, и я могу написать своего не-друга, не являющегося другом.
Я смирился с этим в STL, потому что, хорошо, имеет смысл видеть алгоритмы отдельно от базовых компонентов, и из-за вы привыкли к этому фактор.
Я не видел IDE, который мог бы сказать мне, какие функции не являются членами, работают с определенным классом.
И это на самом деле мой вопрос:
Есть ли IDE (или функция IDE), которая помогает с этим соглашением кода?