友元函数允许外部函数访问类中的私有或受保护成员,通过在类定义中用 friend 关键字声明。与成员函数不同,友元函数声明在类外部,可访问类的私有和保护成员,而成员函数在类内部声明,可访问类所有成员。友元函数用作普通函数调用,而成员函数用类对象调用,在需要外部访问私有或受保护成员时使用友元函数,在类内部使用成员函数时使用成员函数。

C++ 友元函数详解:友元函数与成员函数的区别
友元函数
友元函数是一种允许外部函数访问类中的私有和保护成员的特殊函数。它通过在类定义中使用 friend 关键字声明。
立即学习“C++免费学习笔记(深入)”;
语法:
class MyClass { friend void myFriendFunction(); ...};
成员函数
成员函数是属于类的函数,可以访问其私有和保护成员。
语法:
class MyClass { void myMemberFunction(); ...};
友元函数和成员函数的区别
可访问性可以访问类的私有和保护成员可以访问类的所有成员声明位置在类外部在类内部作用域全局类内部调用方式像普通函数一样调用使用类对象调用
实战案例
考虑一个 Student 类,它具有私有的 marks 成员:
class Student {private: int marks; ...};
我们可以使用友元函数 calculateAverage() 来计算学生的平均成绩,该函数可以访问 marks:
// 友元函数friend double calculateAverage(Student& student);// 计算学生的平均成绩double calculateAverage(Student& student) { return student.marks / 3;}
我们也可以使用成员函数来计算平均成绩,但它只能在 Student 类中使用:
// 类的成员函数double getAverage() { return marks / 3;}
结论
友元函数提供了一种机制,允许外部函数访问类的私有和保护成员,而不需要使这些成员对外部世界可见。成员函数可以访问类的所有成员,但只能在类内部使用。
以上就是C++ 友元函数详解:友元函数和成员函数的区别?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1448621.html
微信扫一扫
支付宝扫一扫