发布网友 发布时间:2022-04-01 16:06
共2个回答
热心网友 时间:2022-04-01 17:36
1. 用了友元函数,在调用方看来,更灵活、简洁,代码显现得更清晰。
2. 在这道题中,基于各个学生的多个分数,通过加法运算,同步相加,并且对分数成员进行平均值的求解。
3. 如果 + 运算符的 两端,有两个类型为student的对象,就会调用友元方法
friend student operator+(student s1,student s2),直接访问类的私有成员在每个对象中的实例,把每个学生的各个成绩相加保存到新的student对象里返回。
4. friend void avg(student &s,int n); 作为全局函数,假设有n个学生的总分统计到学生对象 s ,所以有每个分数的平均分。
热心网友 时间:2022-04-01 18:54
其实这段代码完全可以不用友元函数。就把求和与求平均作为普通的成员函数就能搞定。
///不说废话,直接回答你的问题。友元函数的作用是一个类的非成员函数可以访问这个类的所有公共或保护或私有成员。在这道题中的作用也一样。
运算符重载的有两种形式,一种是作为类的成员函数,一种就是声明为友元函数friend student operator+(student s1,student s2)
下面这个完全是为了友元而友元,声明成类的成员函数用s.avg(4)就行。更好的办法是用static
friend void avg(student &s,int n)