作者:gzshun. 原创作品,转载请标明出处!
来源:http://blog.csdn.net/gzshun
类的重要特性是使数据封装与隐藏,但同时也给外部函数访问类中的私有和保护类型数据成员带来了不便。为此,C++使用了"友元函数"。
一、友元函数
友元函数必须在类中进行声明而在类外定义,声明须在函数类型的前面加上friend关键字,友元函数虽不是类的成员函数,但它可以访问类中的私有和保护类型数据成员。
友元函数的使用:
执行结果:
mX = 1
mY = 2
二、友元类
当一个类作为另一个类的友元时,这就意味着该类的所有成员函数都是另一个类的友元函数。
友元类的使用:
执行结果:
mX = 3
mY = 4
三、使用其他类的成员函数为友元
这是在《C++ Primer中文版第4版》看到的,声明类的时候可能会出现顺序问题。
执行结果:
mX = 1
mY = 2
分享到:
相关推荐
一个实例,实现运算符重载(成员函数和非成员函数两种方式),友元函数的使用,注意事项等,自己学习时编写的,
本文档详细介绍了C++友元函数及友元类,方便大家对比学习
这是关于C++中、如何将普通函数声明友元函数的、求间隔日期的例子。适用于C++初学者学习用。
友元函数,类外普通函数声明为类的友元,之后即可与类共享数据
日期类Date包含日期的年、月、日三个数数据成员,编写一个友元函数,求两个日期之间相差的天数; 重要的是理顺:这个函数不是Date类的成员函数
c++ demo,重载运算符,友元函数的实现
关于c+模板之友元类友元函数的实例化,图形界面之矩形。
(1) 定义一个Boat和Car两个类,他们都具有私用属性--重量; (2)编写一个函数,计算两者的重量和。
C++友元函数的使用,这个友元函数是另一个类的成员函数
4、 如果我们希望使用某个友元函数name我们必须在友元声明之外再专门对函数进行一次什么 5、 为了使友元对类的用户可见我们通常把友元的声明与类本身放置在同一个头文件中 6、 友元函数的定义不使用类作用域符合 .h...
友元函数和友元类的需要:类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又...
C++静态成员、友元函数、类模板实验,共3个任务
友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有...
C++友元函数和友元类的学习心得[归纳].pdf
以下是对C++运算符重载 成员函数与友元函数进行了介绍,需要的朋友可以过来参考下
在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术 **友元的目的** 就是让一个函数或者类 访问另一个类中的私有成员 **友元的关键字为** ==friend== **友元的三种实现** ...
介绍c++ 友元函数的定义使用,初步入门教程
以下是对C++中的友元函数进行了详细的总结介绍,需要的朋友可以过来参考下
② 首先,采用友元函数distance()的方式实现友元接口;其次,采用友元成员distance()的方式实现友元接口;最后,尝试采用友元类的方式实现友元接口。 ③ 对于友元成员和友元类两种实现方式,可以另外定义一个求解两...
采用C++语言实现的日期时间合并输出(友元函数)