面向对象程序设计:友元函数与私有成员访问权限【谭浩强第十二章PPT学习教案总结】

版权申诉
0 下载量 88 浏览量 更新于2024-02-26 收藏 283KB PPTX 举报
C++面向对象程序设计是谭浩强所著的一本经典教材,其中第十二章讲解了友元函数的概念和用法。友元函数是一种定义在类外部的普通函数,能够访问类中的私有成员和保护成员,不受类的访问权限限制。这一特性使得友元函数在某些情况下非常有用,但需要在类体内进行说明,并在前面加上关键字"friend"。 在友元函数的声明中,需要指定函数的返回类型和参数,以及在函数名前加上关键字"friend"。示例代码如下: ```cpp class A { private: int a; friend void func(A obj); // 声明友元函数func }; ``` 在上面的示例中,函数func被声明为类A的友元函数,因此可以访问类A中的私有成员a。但需要注意的是,友元函数并不属于类A的成员函数,它是一个独立于类的普通函数。 友元函数的定义通常在类的外部进行,但在定义时不需要再加上"friend"关键字。示例代码如下: ```cpp void func(A obj) { cout << "The value of private member a is: " << obj.a << endl; } ``` 在上面的示例中,函数func被定义为输出类A的私有成员a的数值。由于它是A类的友元函数,可以直接访问类A中的私有成员a。 友元函数的存在破坏了类的封装性,因此在使用时需要慎重考虑。过度使用友元函数可能会导致程序的可维护性降低,因此应该在确实需要访问类中私有成员的情况下才使用友元函数。另外,友元函数也可以是其他类的成员函数,而不仅限于普通函数。 总的来说,友元函数是面向对象程序设计中的一种特殊机制,通过它可以实现对类中私有成员的访问,但需要慎重使用以避免破坏类的封装性。在实际编程中,需要根据具体情况决定是否使用友元函数,并在使用时遵循相关的规范和最佳实践。