友元函数和友元类
友元全局函数
class Class
{
friend void show(Class &c);
private:
int x = 10;
};
void show(Class &c)
{
cout << c.x;
}
int main()
{
Class c;
show(c);
}
友元成员函数
class ClassA;
class ClassB
{
public:
void show(ClassA &c);
};
class ClassA
{
friend void ClassB::show(ClassA &c);
private:
int x = 10;
};
int main()
{
ClassA classA;
ClassB classB;
classB.show(classA);
}
void ClassB::show(ClassA &c)
{
cout << c.x;
}
友元类
class ClassB;
class ClassA
{
friend ClassB;
private:
int x = 10;
};
class ClassB
{
public:
void show()
{
cout << classA.x;
}
private:
ClassA classA;
};
int main()
{
ClassB c;
c.show();
}