成员函数作为友元与普通函数作为友元,两者之间有什么不同。
时间: 2024-04-28 22:20:44 浏览: 118
C++函数中那些不可以被声明为虚函数的函数[参考].pdf
成员函数作为友元与普通函数作为友元之间的最大不同在于它们访问的权限不同。
成员函数作为友元函数时,它们可以访问该类的所有私有成员和保护成员,包括被继承的私有成员和保护成员。这种情况下,友元函数和类的成员函数没有本质区别,它们都可以调用类的私有成员和保护成员。
而普通函数作为友元函数时,它们只能访问该类中被声明为 `public` 和 `protected` 的成员,无法访问该类的私有成员,因为友元函数不是该类的成员函数。
因此,在选择成员函数作为友元函数或普通函数作为友元函数时,需要根据需要访问的成员来确定。如果需要访问该类的私有成员,就需要选择成员函数作为友元函数;如果只需要访问该类的公共成员和保护成员,可以选择普通函数作为友元函数。
阅读全文