友元函数与普通函数有什么不同
时间: 2024-04-28 09:20:45 浏览: 183
友元函数和普通函数的最大不同在于它们的访问权限。普通函数只能访问公共成员(public)和保护成员(protected),而不能访问私有成员(private)。而友元函数可以访问类的私有成员,即使它不是类的成员函数。这样,友元函数可以访问那些普通函数无法访问的数据,更加灵活。
另一个不同点是:普通函数可以通过类的对象来调用,而友元函数不属于类的成员函数,因此不能被直接调用。友元函数必须通过函数名来调用,就像普通函数一样。
总的来说,友元函数的主要作用是扩展类的访问权限,使得一些外部函数可以访问类的私有成员,从而提高了程序的灵活性和可维护性。
相关问题
成员函数作为友元与普通函数作为友元,两者之间有什么不同。
成员函数作为友元与普通函数作为友元之间的最大不同在于它们访问的权限不同。
成员函数作为友元函数时,它们可以访问该类的所有私有成员和保护成员,包括被继承的私有成员和保护成员。这种情况下,友元函数和类的成员函数没有本质区别,它们都可以调用类的私有成员和保护成员。
而普通函数作为友元函数时,它们只能访问该类中被声明为 `public` 和 `protected` 的成员,无法访问该类的私有成员,因为友元函数不是该类的成员函数。
因此,在选择成员函数作为友元函数或普通函数作为友元函数时,需要根据需要访问的成员来确定。如果需要访问该类的私有成员,就需要选择成员函数作为友元函数;如果只需要访问该类的公共成员和保护成员,可以选择普通函数作为友元函数。
c++成员函数作为友元与普通函数作为友元,两者之间有什么不同
C++成员函数作为友元和普通函数作为友元之间的主要区别在于它们可以访问的类成员不同。
成员函数作为友元时,它可以访问该类的所有成员,包括私有成员。因此,成员函数作为友元更加灵活,可以访问更多的类成员。
而普通函数作为友元时,它只能访问该类的公有成员和保护成员,不能访问私有成员。因此,普通函数作为友元更加受限制,只能访问有限的类成员。
此外,成员函数作为友元时需要通过对象来调用,而普通函数作为友元时不需要。
阅读全文