Дружба в C ++ не транзитивна:
Джон - мой друг, и он может использовать мое беспроводное соединение в любое время (я ему доверяю).
Тем не менее, друг Джона Тим - бред, и хотя Джон - мой друг, я не включаю Тима в друзья, и поэтому я не позволяю ему использовать мое беспроводное соединение.
Дружба НЕ наследуется
Также дети Джона - кучка хулиганов, поэтому я не доверяю им, они точно не мои друзья, и не мои собственные дети, которым я доверяю, насколько я могу их бросить.
Хотя наши дети не могут напрямую получить доступ к беспроводной связи, они могут получить к ней доступ, если они пройдут через нас. Таким образом, дети Джона могут получить доступ к моей беспроводной связи, если они получат к ней доступ через Джона (то есть они находятся под надзором и защищены Джоном).
Кроме того, дружба не симметрична.
Джон работает в правительстве, поэтому ему, к сожалению, запрещено доверять кому-либо, особенно когда речь идет о беспроводной связи.
Ты всегда твой лучший друг.
Это разрешает такие вещи, как конструкторы копирования, где вы можете получить доступ к закрытому члену другого объекта, даже если нет реального доступа.
Так что я также автоматически дружу со всеми моими клонами :-), поскольку они - просто другие экземпляры меня.