深入研究类模板与Template Class Friends
定义二叉树类(BT)及其元素类(BE)时, BT 访问BE 私人会员需要建立好友关系。然而,理解正确定义关系的底层机制至关重要。
最初,您尝试将好友关系声明为 template
相反,您应该使用不同的模板参数名称,例如:
templateclass BE { template friend class BT; };
此声明表明任何 BT 类,无论其模板参数如何,都是具有匹配模板参数的所有 BE 类的友元。
考虑以下示例以进一步阐明不同类型好友关系数量:
templatestruct foo { template friend class bar; };
在这种情况下,bar 是 foo 的友元,无论 bar 的模板参数如何。 bar 的任何特化都将是 foo.
templatestruct foo { friend class bar ; };
这里,只有当 bar 的模板参数与 foo 的模板参数匹配时,它才是 foo 的友元。因此,只有 bar
在您的特定场景中,朋友类 bar
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3