【C++基础】运算符重载

一、运算符重载:

1.类是用户自定义的数据类型,使用运算符重载可以i实现如下逻辑:

(1)对象1 = 对象2+对象3,如描述复数的类,描述字符串的类。

(2)提高程序的可读性。

2.重载赋值运算符:

(1)如果一个类没有提供赋值运算函数,则默认提供一个。

(2)如果一个类提供了拷贝构造函数,那么也要提供一个重载的赋值运算函数。

3.重载运算符的规定:

(1)重载的运算符要保持原运算符的意义。

(2)只能对已有的运算符进行重载,不能增加新的运算符。

(3)重载的运算符不会改变原先的优先级和结合性。

(4)参数说明都是内部类型的时候,不能重载。例如:

int * operator +(int ,int *) 是错误的。

4.运算符重载的形式:

(1)成员函数:(常见)

(2)友元函数:(不太常见)

5.运算符重载的限制:(上面是可以被重载的运算符,下面是不可以被重载的运算符)

6.运算符重载作为成员函数:

7.作为成员的运算符比之作为非成员的运算符,在声明和定义时,形式上少了一个参数。(当前对象在运算符的左边,形参传进来的在运算符的右边)

8.C++规定: = , ()(函数访问运算符),[ ](下标运算符),->()

9.重载前增量和后增量的区别:(++ i和i++)

(1)使用前增量的时候,对对象(操作数)进行增量修改,然后在返回该对象。

(2)使用后增量的时候,必须在增量之前返回原有的对象值。

class increase

{

   public:

      increase(int x):value(x){}

      increase&operator ++();//

      increase operator ++(int);

   private:

}

前后增量操作的意义,决定了其不同的返回方式。前增量运算符返回引用,后增量运算符返回对象。

后增量运算符中的参数int只是为了区别前增量与后增量,除此之外没有任何的作用。

10、++的非成员形式的重载:

friend increase &operator ++(increase &);//前增量

friend increase operator ++(increase & ,int);//后增量

increase & operator ++(increase & a)

{

   a.value ++;//前增量

   return a;//再返回原对象

}

increase  operator ++(increase & a ,int)

{

   increase temp(a);//通过拷贝构造函数保存原有对象的值

   a.value++;//原有对象增量修改

   return  temp;//返回原有对象值。

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值