No C/C++, um relacionamento especial permite que uma classe dê permissão para outra classe acessar sua área de dados privada. A classe que recebeu a permissão se torna uma amiga para a classe de compartilhamento. Uma classe que é amiga de outra tem acesso a todos os dados e métodos da classe de compartilhamento.
Por exemplo, uma classe Customer concede permissão para uma classe Account, de forma que a classe Account possa utilizar informações pessoais sobre o cliente. A classe Account torna-se uma amiga da classe Customer. Esse relacionamento facilita para a classe Account a execução de suas tarefas, pois ela tem acesso à classe Customer.
Como a figura na tabela a seguir ilustra, um relacionamento de permissão é mostrado como um conector de linha tracejada entre as classes com uma ponta de seta aberta que aponta para a classe amiga ou a classe que tem permissão para acessar os dados privados e os métodos da classe de compartilhamento.
| Código-fonte do C/C++ | Visualização UML |
![]() |
![]() |