Дизайн класса против IDE: действительно ли функции, не являющиеся членами группы, действительно стоят того?

В (иначе) отличной книгеСтандарты кодирования C ++, Пункт 44 под названием "Предпочитаю писать функции, не являющиеся членами группы "Саттер и Александреску рекомендуют, чтобы только функции, которым действительно нужен доступ к членам класса, сами были членами этого класса. Все другие операции, которые могут быть написаны с использованием только функций-членов, не должны быть частью класса. Они должны быть не членами и не друзьями. Аргументы таковы:

Это способствует инкапсуляции, потому что есть меньше кода, который нуждается во внутреннем доступе класса.Это облегчает написание шаблонов функций, потому что вы неКаждый раз приходится угадывать, является ли какая-то функция членом или нет.Он сохраняет класс небольшим, что, в свою очередь, облегчает тестирование и обслуживание.

Хотя я вижу значение в этом аргументе, я вижу огромный недостаток:моя IDE можетпомочь мне найти эти функции! Всякий раз, когда у меня есть какой-либо объект, и я хочу посмотреть, какие операции доступны на нем, я могут просто введите ""pMysteriousObject-> и получить список функций-членов больше.

Поддержание чистоты дизайна - это в конечном итоге облегчение вашей жизни. Но это на самом деле сделало бы мою намного сложнее.

Так что я'мне интересно, если этоЭто действительно стоит того.Как ты с этим справляешься?

Ответы на вопрос(7)

Ваш ответ на вопрос