当派生类通过公共访问从基类继承时,问题与友元函数是否被继承?为什么基类 FRIEND 函数可以在派生类对象上工作?。但是,如果它通过受保护或私有访问继承,则会出现可见性错误。
当它通过公共访问继承时,A 的私有成员的可访问性与通过私有访问继承时相同。他们之间有什么区别?
class A {
private:
int a;
friend void f();
};
class B : private A {
};
void f() {
B obj;
int x = obj.a;
}
int main() {
f();
return 0;
}
Run Code Online (Sandbox Code Playgroud)