课堂定义的朋友功能的范围
The scope of in-class-defined friend function?
几天前,我问了一个有关课堂上定义的朋友函数范围的问题(哪个范围是在哪个范围内定义的朋友函数属于?),我得到了要知道该函数位于封闭名称空间的范围中,但是直到在课堂外明确声明(ADL是例外)才能搜索。
今天,我在C 标准中找到了一些相关的陈述(第11.3节):
当且仅当类是非本地类(9.8)时,可以在"朋友声明"中定义一个函数,函数名称不合格,并且该函数具有命名空间范围。[示例:
class M { friend void f() { } // definition of global f, a friend of M, // not the definition of a member function }; —end example ]
这样的功能是隐式的
inline
。在类中定义的类中定义的朋友函数在其定义的类的(词汇)范围中。班级外定义的朋友功能不是(3.4.1)。
我们可以看到这里有两个与示波器相关的陈述:"具有名称空间范围" and &quort"在该类的(词汇)范围中,其中定义为&quot" 。我在这里很困惑。如果前者与我以前的问题有关(在哪个范围内定义的朋友函数属于?),那么后者代表什么?
a"命名空间范围函数"是一个函数,是名称空间的成员(即,这里的"范围"是指函数的"家庭范围")。
以后的语句链接到3.4.1,必须说
在朋友函数定义(11.3)的定义中使用的名称的名称查找授予友谊的内联定义,应按照成员函数定义中的查找进行。
相关文章:
- 反向功能超出了我的 cpp 程序的范围
- Visual C:命名空间范围错误或晦涩功能?
- 功能原型变量范围C
- 命名空间内的范围功能与课堂内的功能
- 如何访问C 中的功能范围变量
- C 如何获得父级中的功能范围
- "extern string-literal declaration"功能范围内
- 确定范围是访问虚拟功能的合法方式吗?
- 功能未在范围(GLFW,OpenGL,Slackware)中声明
- STD功能替换向量中的字节范围
- 如何在标题文件中获取成员功能的正确代码覆盖范围
- 将范围从成员更改为全局功能
- C 传递序列上范围为变异功能模板
- 课堂定义的朋友功能的范围
- 在此范围内未声明类功能
- 为什么这个功能会进入范围
- 就功能而言,c++11的范围不等于经典的
- 功能范围是什么意思
- 使用检查功能查找给定范围内的所有回文数
- 包含的功能在以后的范围内不可用