Aprofundando-se em modelos de classe com amigos de classe de modelo
Ao definir uma classe de árvore binária (BT) e sua classe de elemento (BE), é necessário estabelecer uma relação de amizade para que a BT tenha acesso aos membros privados da BE. No entanto, é crucial entender a mecânica subjacente para definir o relacionamento corretamente.
Originalmente, você tentou declarar o relacionamento de amizade como template
Em vez disso, você deve usar nomes de parâmetros de modelo diferentes, como:
templateclass BE { template friend class BT; };
Esta declaração indica que qualquer classe BT, independentemente de seus argumentos de modelo, é amiga de todas as classes BE com argumentos de modelo correspondentes.
Considere os exemplos a seguir para esclarecer melhor os diferentes tipos de relacionamentos de amizade:
templatestruct foo { template friend class bar; };
Neste caso, bar é amigo de foo independentemente dos argumentos do modelo bar. Qualquer especialização de bar seria amiga de qualquer especialização de foo.
templatestruct foo { friend class bar ; };
Aqui, bar só é amigo de foo se seu argumento de modelo corresponder ao de foo. Portanto, apenas bar
No seu cenário específico, friend class bar
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