gpt4 book ai didi

c++ - 需要帮助理解与 friend 声明有关的段落

转载 作者:行者123 更新时间:2023-11-30 05:35:11 25 4
gpt4 key购买 nike

但是,您可以在友元声明中定义函数。 类必须是非局部类、函数,函数名必须是非限定的,并且函数具有命名空间范围。下面的例子演示了这一点:

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 A function can be defined in a friend declaration of a class if and only if the class is a non-local class (9.8), the function name is unqualified, and the function has namespace scope. [ Example:

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

end example ]

关于c++ - 需要帮助理解与 friend 声明有关的段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33963794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com