您的位置:首页 > 编程语言 > C语言/C++

c++学习札记 友元成员

2013-06-25 17:24 225 查看
刚学完友元函数,现在来学习友元成员。友元函数是通过一个外部的函数来访问类的私有成员,那么能不能让类的一个成员函数去访问另外类的私有数据那,答案是肯定,c++提供了这一功能,可以在类中声明友元成员。
假定有两个类class boy,class girl.如果要让boy类具有访问girl类私有数据的方法,只要在girl类中声明boy类的某一成员函数是boy类的友元成员就可以了。

// 使用友元成员函数访问另一个类

#include <iostream.h>
#include <string.h>
class girl;            //向前引用
class boy{
char *name;
int age;
public:
boy(char *N,int A)
{    name=new char[strlen(N)+1];
strcpy(name,N);
age=A;
}
void disp(girl &);    //声明disp()为类boy的成员函数
~boy(){delete name;}
};

class girl{
char *name;
int age;
public:
girl(char *N,int A)
{    name=new char[strlen(N)+1];
strcpy(name,N);
age=A;
}
friend void boy::disp(girl &);    //声明类boy的成员函数disp()为类girl的友元函数

~girl(){delete name;}
};

void boy::disp(girl &x)
{
cout<<"boy\'s name is:"<<name<<",age:"<<age<<endl; //访问本类对象成员

cout<<"girl\'s name is:"<<x.name<<",age:"<<x.age<<endl; //访问友元类对象成员

}
void main()
{    boy b("chen hao",25);
girl g("zhang wei",18);
b.disp(g);
}
通过上边的例子,可以知道,如果一个A类的成员函数能够访问另外一个B类的私有数据,只要将A的成员函数在B类中声明为B类的友元成员就可以了。声明的格式入下:

friend void boy::disp(girl &); //声明类boy的成员函数disp()为类girl的友元函数
这阳,boy类的方法disp(),就可以访问girl类中的私有数据了。

阅读(409) | 评论(0) | 转发(0) |

0
上一篇:c++学习札记 友元函数

下一篇:c++学习札记 友元类

相关热门文章

test123

编写安全代码——小心有符号数...

使用openssl api进行加密解密...

一段自己打印自己的c程序...

sql relay的c++接口

GCC编译命令

推荐系统常用算法

C++Primer笔记 第八章 标准IO...

c语言中的#号和##号的作用...

gstreamer插件开发-------sink...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: