No domínio de C , declarar estruturas ou classes modeladas como amigos pode apresentar um obstáculo relacionado à sintaxe. Para conseguir isso, considere a seguinte abordagem:
templatestruct foo { template friend class foo; private: // ... };
Esta sintaxe parece ter sido compilada com sucesso. No entanto, ele declara todas as instanciações de modelo de foo como amigas entre si, independentemente do parâmetro de modelo que elas utilizam. Isso pode ou não estar alinhado com o caso de uso pretendido.
Se você precisar limitar a amizade apenas a instanciações específicas, poderá fazer isso usando esta sintaxe:
templatestruct foo { template friend struct foo ; private: // ... };
Infelizmente, esta sintaxe não permite uma declaração genérica que inclua todas as instanciações possíveis de foo.
Portanto, se seu objetivo é estabelecer amizade em todas as instanciações de modelo de foo, a segunda abordagem usando a classe amigo foo é a mais próxima que você pode chegar, dadas as restrições da sintaxe C.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3