友元函数百度百科:
友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有者的同意)。
友元类百度百科:
友元类的所有成员函数都是另一个类的友元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)。
首先来看看友元函数的参考代码:
#include <iostream>
using namespace std;
class MyClass1
{
int n;
public:
MyClass1() { n=0;}
MyClass1(int i) {n=i;}
friend MyClass1 square(MyClass1);
void display()
{
cout << "n=" << n <<endl;
}
};
MyClass1 square(MyClass1 x)
{
int temp=x.n*x.n;
return MyClass1(temp);
}
int main()
{
MyClass1 a(5),b;
b=square(a);
b.display();
}
程序运行结果截图:
-----------------------------------------------------------------------------------------------------------------------------------------------
然后再来看一看友元类的参考代码:
#include <iostream>
using namespace std;
class A
{
int n;
public:
A() { n=5; };
friend class B; // 说明友元类B
};
class B
{
public:
void display(A temp)
{
cout << "n=" <<temp.n<<endl;
}
};
int main()
{
A a;
B b;
b.display(a);
return 0;
}
程序运行结果截图:
上面的代码在G++下编译运行成功。
(------------------------完--------------------------)