下面是我写的程序,为什么成员函数作为另外一个函数的友元函数时无法访问另外一个类的私有成员?
#include<iostream>
using namespace std;
class man;
class book{
protected:
char *bname;
public:
book(char *b){
bname=new char[strlen(b)+1];
strcpy(bname,b);
}
~book(){
delete[]bname;
}
friend void man::show_book(book &b1);
};
class man{
char *name;
public:
man(char *n){
name=new char[strlen(n)+1];
strcpy(name,n);
}
~man(){
delete[]name;
}
void show_name(){
cout<<"姓名"<<name<<endl;
}
void show_book(book &b1){
cout<<"借的书有"<<b1.bname;
}
};
void main(){
man m("huang");
book a("C++");
m.show_book(a);
}
在man类里面定义只是为了学习一下友元函数,不是为了显示。