| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 399 人关注过本帖
标题:友员问题
只看楼主 加入收藏
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
结帖率:100%
收藏
 问题点数:0 回复次数:3 
友员问题
#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的成员函数,就应该有法,但为什么不行呢???
2007-04-09 22:18
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
收藏
得分:0 

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


2007-04-10 18:43
游乐园
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:671
专家分:0
注 册:2006-11-1
收藏
得分:0 
friend void alpha::display(beta bb);     //已经说明这个alpha类里的成员函数是beat类的有友元函数,这个函数可以访问beta类里的私有成员 但beta是个类,在未创建对象的时候内存是不分配空间的,所以只有生成了对象才可以操作, bb.b_beta 意思就是访问了beta里的私有成员  ,而b_beta 只有beta类自身的函数才能访问

unicorn-h.spaces. ◇◆ sava-scratch.spaces.
2007-04-10 22:17
罗彬
Rank: 1
等 级:新手上路
帖 子:141
专家分:0
注 册:2006-4-24
收藏
得分:0 

谢谢了


2007-04-11 18:24
快速回复:友员问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035975 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved