为什么在类定义中定义朋友函数
Why define a friend function inside class definition
在C 中,我们被允许在类定义中定义朋友函数喜欢: -
class A {
public:
A(int a): mem(a){}
~A() {}
friend void fun() {}
private:
int mem;
};
void fun();
,然后我们可以像任何常规功能一样调用此功能。
fun();
有人可以解释(示例):
在哪些情况下,我们需要定义同类中的朋友功能定义。
这种定义是什么特别的仅通过将功能宣布为课堂上的朋友就可以实现在外部定义功能。
假设您已经知道什么是friend
函数,您的示例绝对没有特殊的含义:您拥有的是常规friend
函数,其声明定义组合。
回想一下,友谊需要在"朋友"一个功能的班级内被声明。之后,该函数可以在某个地方定义,您有两个选择:
- 班级外 - 这是定义朋友函数的常见方法,或者
- 在类中 - 这就是您的示例。
使用一种方法与另一种方法进行的基本注意事项与您在定义之间决定的规则相同。Div>
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 朋友定义函数的名称空间是什么
- 当我们没有将运算符+定义为朋友时?C++
- 优点和缺点 在类内为大型项目定义的内联朋友助手免费函数
- G++ 和 CLang++ 在模板类中定义了朋友模板函数的不同行为
- 警告定义朋友操作员在名称空间内声明
- 我们无法在本地类中定义朋友函数的原因是什么?
- 为什么在类定义中定义朋友函数
- 为什么我需要将此朋友函数的定义包装在名称空间中
- 如何在两个类之外的模板类内部的非模板类中声明的朋友函数定义
- 哪个范围属于课堂定义的朋友函数
- 课堂定义的朋友功能的范围
- 类模板中定义的朋友函数范围定义的范围是什么?
- 在模板类中专门定义错误的朋友操作员
- 使用未命名的命名空间在API中重新定义朋友类并访问私有成员
- C++错误C2027:使用未定义的类型'第二'(朋友班)
- Clang vs. GCC:通过限定/非限定名将全局函数定义为朋友
- 在课堂上和课堂外定义的朋友之间的区别:bug还是功能