关于友元函数
发布网友
发布时间:2022-08-11 05:48
我来回答
共3个回答
热心网友
时间:2024-11-14 17:20
从字面上我们可以这样理解,就象继承一样,可以说子继承父,友元就是朋友,它不是类的组成部分,因此被称为直接函数调用。友元函数不能隐式访问类成员,而必须将成员操作符用于作为参数传递的对象。
友元函数要在一个类体内说明,形式为:
friend 类型名 友元函数名(形参表);
然后在类体外对友元函数进行定义,定义的格式和普通函数相同,但可以通过对象作为参数直接访问对象的私有成员
友元函数说明如下:
1)必须在类的说明中说明友元函数,说明时以关键字friend开头,后跟友元函数的函数原型,友元函数的说明可以出现在类的任何地方,包括在private和public部分;
2)注意友元函数不是类的成员函数,所以友元函数的实现和普通函数一样,在实现时不用"::"指示属于哪个类,只有成员函数才使用"::"作用域符号;
3)友元函数不能直接访问类的成员,只能访问对象成员,
4)友元函数可以访问对象的私有成员,但普通函数不行;
5)调用友元函数时,在实际参数中需要指出要访问的对象!
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
热心网友
时间:2024-11-14 17:20
你好!!!
有元函数和普通的函数一样的,都是直接调用的,
void Increment(MyClass& f) { f._i++; }这是函数的定义,
Increment(obj);这是函数的调用!!
热心网友
时间:2024-11-14 17:21
因为友元函数可以直接修改类里面的所有数据