#include<iostream>
#include<vector>
using namespace std;class Text{
public:
Text():a(1){}
private:
int a;
void display(){ cout<< "hello world"<<endl;}
friend void f(Text t);
};void f(Text t)///可以用引用,也可以不用,不用前面加类,要有类参数,不然鬼才知道他要哪一个
{
cout<<t.a<<endl;
t.a = 2;///友元可以改变值
cout<<t.a<<endl;
t.display();///有缘可以引用函数
}void main()
{
Text t;
f(t);
}
1.友元可以访问类的私有成员。
2.只能出现在类定义内部,友元声明可以在类中的任何地方,一般放在类定义的开始或结尾。
3.友元可以是普通的非成员函数,或前面定义的其他类的成员函数,或整个类。
4.类必须将重载函数集中每一个希望设为友元的函数都声明为友元。
5.友元关系不能继承,基类的友元对派生类的成员没有特殊的访问权限。如果基类被授予友元关系,则只有基类具有特殊的访问权限。该基类的派生类不能访问授予友元关系的类。
时间: 2024-10-10 03:07:25