Я искал описания различий между функциями-членами и не-членами, и, хотя я все еще в замешательстве, я подумал, что приведу пример, чтобы прояснить для меня кое-что. Вот вопрос из старого теста, который наш инструктор дал нам в качестве учебного материала:
Предположим, у нас есть программа main (), которая использует реализации шаблона queue2.h и node2.h из нашего текста, создавая очередь букв (queue letters).
(б) Должны ли мы сделать это << участник или не участник?
Приватный, публичный, друг или нет?
(b) Должны ли мы сделать Get_Front участником или не участником?
Приватный, публичный, друг или нет?
Я предполагаю, что первый должен быть реализован как не член с функцией друга, но я не уверен в деталях относительно того, почему?
Большое спасибо!
(б) Должны ли мы сделать это << участник или не участник? Приватный, публичный, друг или нет?
Член, публичный.
Вы создаете объект очереди и оператор вставки перегрузки в качестве функции-члена. Может использоваться для вставки символов в очередь.
Причина: мы хотели вставить в поток очереди, а не во внешний поток, такой как cout.
Лучше по возможности использовать функции-члены. Друзья должны использоваться только тогда, когда участники не могут быть использованы.
Get_Front () становится публичной функцией-членом.
Трудно сказать, не знаю истинное назначение программы, которую вы описали выше. Я могу дать вам общий ответ.
Сделать функцию
Насколько член & не член обеспокоен, опять же трудно сказать, не зная,
подробности о реализации. Если функция должна иметь доступ к закрытым членам класса, она должна быть функцией-членом.