类与友元函数
来源:互联网 发布:linux 设置ip地址 编辑:程序博客网 时间:2024/05/19 12:26
采用类的隐藏后实现了数据的隐藏和封装,类的数据成员一般定为私有成员,成员函数一般定义为共有的,以此提供类与外界的通信借口,有时需要定义一些函数,这些函数不是类的一部分(注意友原函数不是类的一部分),但又需要频繁的访问类的数据成员,这时可以将这些函数定义成友元函数。除了友元函数,还有友元类,友元的作用是提高了函数的运行效率(即类型检查和安全性检查都需要时间开销),但他破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。
若在类中定义read()函数例如:
class Sales_data
{
public:
friend istream& read(istream &is,Sales_data &M);
string isbn();
int add (Sales_data trans);
void print ();
private:
string bookNo;
double price;
int units_sold;
{
public:
friend istream& read(istream &is,Sales_data &M);
string isbn();
int add (Sales_data trans);
void print ();
private:
string bookNo;
double price;
int units_sold;
};
则在调用中就必须用类的对象来引用这个函数,否则编译报错说函数未声明的使用,解决这个问题,就用到了friend关键字。将函数定义在外部,然后在类内部使用friend声明为友元函数,则可以正常使用。
友元函数的弊在于破坏了代码的封装性耦合性。
利处:普通函数直接访问类的成员,提高了运行效率,方便重载操作符的使用。
友元函数的弊在于破坏了代码的封装性耦合性。
利处:普通函数直接访问类的成员,提高了运行效率,方便重载操作符的使用。
1 0
- 类与友元函数
- 友元函数与友类
- 模板类与友元函数
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 友元函数与友元类
- 类-友元函数
- 循环队列的小例子
- 实习经验总结
- opengl3 PointSprite及在粒子系统中的使用
- 阿里云 Linux下Java Web环境搭建
- c语言复杂数据类型
- 类与友元函数
- iOS中Facebook开源动画库POP的简单使用
- K 均值算法
- Struts2中的OGNL详解
- MSP430-WDT
- mfc中rich edit实现自动换行的设置
- COCOS2D-3.9 DictMaker分析
- UIView的bounds到底是干嘛的
- 【Codeforces Round 276 (Div 2)D】【数论 正难则反 枚举倍数 二分 O(nlogn)】Maximum Value n个数大数mod小数找最大余数