C++基础面试题, C++ 中友元类和友元函数有什么作用?
C++基础面试题, C++ 中友元类和友元函数有什么作用?
QA
Step 1
Q:: C++
中友元类和友元函数有什么作用?
A:: 友元类和友元函数允许某个类访问另一个类的私有成员和保护成员。友元函数是一种特殊的函数,它不是类的成员,但可以访问类的私有和保护成员。友元类则是指某个类的所有成员函数都是另一个类的友元函数。使用友元的主要目的是为了实现某些操作时可以直接访问类的内部数据,而不必通过公共的接口函数。
Step 2
Q:: C++
友元函数的声明和定义如何实现?
A:: 友元函数通过在类内部使用关键字 friend
来声明。它可以是全局函数,也可以是类的成员函数。定义时无需在函数名前加 friend
关键字,直接在类外定义即可。例如:
class A {
friend void show(A& a);
private:
int data;
};
void show(A& a) {
std::cout << a.data;
}
Step 3
Q:: 在 C++
中,为什么需要使用友元类?
A:: 友元类允许一个类的所有成员函数直接访问另一个类的私有或保护成员。这在两个类之间高度耦合的情况下非常有用。例如,当两个类密切合作时,使用友元类可以减少接口的冗余和复杂性。
用途
面试这个内容的原因在于考察候选人对 C`++` 封装性及访问控制机制的理解。友元函数和友元类涉及到如何在保持封装性的同时实现类之间的高效合作。在实际生产环境中,当两个或多个类需要紧密合作,且彼此需要访问对方的私有成员时,可能会用到友元函数或友元类。这通常出现在需要优化性能或者减少类接口冗余的场景中。\n相关问题
🦆
C++ 中的访问控制修饰符有哪些?▷
🦆
C++ 中什么是封装?▷
🦆
如何避免友元函数或类的滥用?▷
🦆
C++ 中的继承与友元类如何共存?▷