C++学习(6)——友元和运算符重载

目录

一、友元

1、friend(友元)

2、友元函数

3、友元类

二、运算符重载

1、+号重载(-号类似)

2、++重载(--类似)

3、=号重载


一、友元

1、friend(友元)

1、访问权限

        友元不受类中访问权限的影响,并且在任意权限区都可以声明,友元可以访问类对象的任意成员

2、在类中的声明格式

        friend 函数类型 函数名(参数列表);

3、分类

        友元函数和友元类

4、优点

        可以提高程序运行效率

5、缺点

        会破坏类的封装性

2、友元函数

1、普通函数作为类的友元

写法:friend  函数类型 函数名(参数列表);

作用:可以访问类中所有权限的数据成员

2、A类的成员函数作为B类的友元函数

在类B中声明,写法:  friend  函数类型 A::函数名(参数列表);

3、作用域

友元函数属于哪个类,作用域就在哪。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

3、友元类

1、什么时候可以写成友元类

        如果类A的成员函数需要频繁的访问类B中的数据成员,那么就可以把A写成类B的友元类

2、写法(格式)

friend  class  +类名;

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

二、运算符重载

        运算符重载(以复数为例)。 注意点:::  ? :  .  ->  &  sizeof)这些不能重载。

1、+号重载(-号类似)

        普通函数重载+,函数有两个参数(类对象的引用)。成员函数重载+,函数有一个参数(类对象的引用),另一个参数为类本身,可以不用写。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

2、++重载(--类似)

        后++或者后--,函数参数里有个int++或前--,函数返回值为类的引用(&,不走拷贝构造。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

3、=号重载

        一个对象赋值给另一个对象,也会走拷贝构造函数。赋值运算符重载不能用友元重载,否则会报错。

原创不易,转载请标明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

似末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值