需要帮助理解与朋友声明有关的段落

Need help understanding a paragraph pertaining to friend declaration

本文关键字:声明 段落 朋友 帮助 助理      更新时间:2023-10-16

但是,您可以在友元声明中定义函数类必须是非本地类、函数,函数名称必须是非限定的,并且函数具有命名空间作用域下面的例子说明了这一点:

class A { void g(); };
void z() {
class B { // friend void f() { }; }; 
} 
class C { // friend void A::g() { } 
friend void h() { } 
};

虽然我理解The class must be a non-local class的意思,但在那个逗号之后,我就想不起来了,或者那个单独用逗号包围的虚词是打字错误?。我的意思是整个段落逐字逐句的意思。感谢

p.S以上段落是从ibm C++参考资料中窃取的->https://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzarg/cplr042.htm

这是C++14标准中的措辞:

[class.friend]/6函数可以在类的友元声明中定义,当且仅当该类是非局部类(9.8),函数名称不合格,并且函数具有命名空间作用域。示例:

class M {
  friend void f() { } // definition of global f, a friend of M,
                      // not the definition of a member function
};

--结束示例]