0
点赞
收藏
分享

微信扫一扫

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

颜娘娘的碎碎念 2022-03-12 阅读 79

目录

一、友元

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、=号重载

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

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

举报

相关推荐

0 条评论