В чем разница между функцией друга и классом друга? - PullRequest
5 голосов
/ 25 сентября 2010

В чем разница между функцией друга и классом друга? и где следует использовать ключевое слово friend?

Ответы [ 4 ]

11 голосов
/ 25 сентября 2010

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

Ключевое слово friend используется для предоставления доступа к личным данным участников. Иногда вам может понадобиться вспомогательный класс или дополнительный класс для доступа к закрытым членам другого класса. Для функций типичным примером является перегрузка оператора. Возможно, вы хотите перегрузить оператор +. Вы можете сделать оператор + функцию объявленной вне класса (чтобы ее можно было вызывать без объекта), и для этого потребуется доступ к данным частного класса.

Проверьте на этом сайте для подробного описания обоих и как их использовать.

1 голос
/ 19 апреля 2016

Функция друга используется для доступа к непубличному члену класса. Класс может позволить функции, не являющейся членом, и другим классам обращаться к своим собственным личным данным, делая их другом. Друг имеет полный доступ к частным членам данныхдругой класс, не будучи членом этого класса.

1 голос
/ 09 февраля 2013

Функция друга

  1. Для объявления используется ключевое слово friend.
  2. При написании определения функции ключевое слово friend не требуется.
  3. Через функцию друга мы можем разрешить внешним функциям получать доступ к членам класса.

Класс друга

  1. Для объявления класса друга ключевое слово friendиспользуется: friend class a;
  2. При написании класса ключевое слово friend не требуется.
  3. С классом friend мы можем получить доступ к членам одного класса в другом.
0 голосов
/ 12 мая 2015

1) Функция друзей используется для доступа к переменной личных данных классов, где функция-член используется для доступа к переменной личных данных того же класса.

2) Вы можете вызывать функцию друзей в основной функции без каких-либообъект, но для вызова функции-члена класса вам просто нужно создать объект того же класса.

3) функция друзей может рассматриваться как функция, не являющаяся членом, но функция-член не рассматривается как функция, не являющаяся членом класса. введите описание ссылки здесь

...