面试题答案
一键面试友元函数的作用
友元函数是一种定义在类外部,但可以访问类的私有和保护成员的函数。它的主要作用是为了让某些函数能够访问类的私有或保护成员,在一些情况下方便数据共享和操作,同时又不必将这些成员设为公有,避免过度暴露类的内部实现细节。
打破封装性实现数据共享的方式
封装性是面向对象编程的特性之一,它将数据和操作封装在类内部,通过访问修饰符(如private、protected)限制外部对内部数据的访问。友元函数打破封装性是因为它虽然定义在类的外部,却可以访问类的私有和保护成员,这样就使得类的部分内部数据可以在类外部被特定的函数操作,实现了对象间数据共享。
示例代码
#include <iostream>
class MyClass {
private:
int privateData;
public:
MyClass(int data) : privateData(data) {}
// 声明友元函数
friend void friendFunction(MyClass obj);
};
// 定义友元函数
void friendFunction(MyClass obj) {
std::cout << "访问MyClass的私有成员privateData: " << obj.privateData << std::endl;
}
int main() {
MyClass myObj(42);
friendFunction(myObj);
return 0;
}
在上述代码中,friendFunction
是 MyClass
的友元函数,它可以访问 MyClass
的私有成员 privateData
,从而实现了数据共享。