那如果建一个C++窗口工程,按钮的触发要生成一个自己定义的类的对象,该对象要调用一个友元函数,那么友元函数在类的头文件声明吗?又是在哪里定义的呢?顺便说一下声明格式吧,我懒得去翻书了。谢谢
追答这里有一个例子:
#include
using namespace std;
class AA
{
int a;
public:
AA(int n=0):a(n){}
int getValue() const {return a;}//2
friend const void show(AA aa){cout<<aa.a;} ;//该函数不严格属于类的成员,但是要访问到类的"私有财产" :a
//所以声明为友元,并且必须在类内声明.
};
main()
{
AA b;
b=120000;
show(b); //注意调用格式,如果是类的公有函数,形式为 b.show()的形式,但这个不是,只是友元罢了,当普通函数调用就行.
}
该例子中,类的定义及实现都写在了一个文件里,严格来说,应该把类定义写在 "类.h" 头文件中,类的函数包括友元函数实现写在"类.cpp" 程序中.