友元类,一句话说明就是:
如果在ClassB 里加入friend class ClassA; 就意味着ClassB允许ClassA访问自己(ClassB)的私有方法和变量。
//
// Created by d11626 on 2024/7/30.
//
#include <iostream>
class ClassB {
// allow ClassA access ClassB's private field
friend class ClassA; // ClassA is a friend of ClassB
private:
int privateVarB;
void someFunction() {
privateVarB = 10;
std::cout<<"in someFunction"<<std::endl;
}
};
class ClassA {
public:
void accessBPrivate(ClassB& b) {
b.privateVarB = 20; // Accessible because ClassA is a friend of ClassB
b.someFunction();
}
private:
int privateVar;
};
int main() {
ClassA a{};
ClassB b{};
a.accessBPrivate(b);
return 0;
}