Спецификатор доступа friend используется для объявления функций или классов, дружественных объявленному классу. Дружественные функции или классы не являются членами класса, но имеют доступ к закрытым (private) и защищенным (protected) членам класса. Главной целью создания друзей классов является возможность перегрузки с их помощью функций бинарных операторов.
Функции-друзья не могут быть вызваны по указателю this или применяться к объектам класса, в котором они объявлены со спецификатором friend, с помощью операторов доступа к членам класса (. и ->). В приведенном ниже примере класс СаrСаr объявляется дружественным классу Саr.