面试题答案
一键面试#include <iostream>
class A {
friend class B;
private:
int privateVar;
public:
A(int var) : privateVar(var) {}
};
class B {
public:
void accessPrivateVar(A& a) {
std::cout << "Accessed privateVar in class A: " << a.privateVar << std::endl;
}
};
友元类的作用范围在这种情况下体现为:类B作为类A的友元类,它能够访问类A的私有成员privateVar
。但是这种访问权限只针对类B,其他类(非友元类)不能访问类A的privateVar
。友元关系是单向且非传递的,即类B能访问类A的私有成员,但类A不能反过来因为B是其友元就访问B的私有成员;并且若类C是类B的友元,类C也不能因为B是A的友元就访问A的私有成员。