注册 登录
编程论坛 C++教室

友员问题

罗彬 发布于 2007-04-09 22:18, 399 次点击
#include <iostream>
using namespace std;
class beta; //前向声明
class alpha
{
private:
int a_data;
public:
alpha() {a_data = 10;}
void display(beta);
};
class beta
{
private:
int b_data;
public:
beta() {b_data = 20; }
friend void alpha::display(beta bb);
// alpha类的成员函数为beta类的友元函数
};
void alpha::display(beta bb)
{
cout<<"\n data of beta ="<<bb.b_data;
cout<<"\n data of alpha ="<<a_data;
}
int main(){
alpha a1;
beta b1;
a1.display(b1);
}
为什么bb.b_data无法变成b_data,我想他是BETA的成员函数,就应该有法,但为什么不行呢???
3 回复
#2
罗彬2007-04-10 18:43

那个高手给我讲讲看看嘛!

#3
游乐园2007-04-10 22:17
friend void alpha::display(beta bb);     //已经说明这个alpha类里的成员函数是beat类的有友元函数,这个函数可以访问beta类里的私有成员 但beta是个类,在未创建对象的时候内存是不分配空间的,所以只有生成了对象才可以操作, bb.b_beta 意思就是访问了beta里的私有成员  ,而b_beta 只有beta类自身的函数才能访问
#4
罗彬2007-04-11 18:24

谢谢了

1