关于友元的描述中,( )是错误的。 A.友元函数是成员函数,它被说明在类体内 B.友元函数可直接访问类中的

2024-12-16 18:38:57
推荐回答(2个)
回答1:

友元函数是成员函数,它被说明在类体内是错误的。因为友元函数不是成员函数,但要在类中声明。友元不是成员函数,但是它可以访问类中的私有成员。

友元函数是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样。

友元关系不具对称性。即 A 是 B 的友元,但 B 不一定是 A 的友元。 友元关系不具传递性。即 B 是 A 的友元,C 是 B 的友元,但是 C 不一定是 A 的友元。



扩展资料:

研究背景

类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。

另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。

为了解决上述问题,提出一种使用友元的方案。友元是一种定义在类外部的普通函数或类,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。

回答2:

A错,友元函数不是成员函数,但要在类中声明