内联函数即Operator重写操作符

inline内联函数

inline内联函数关键字在定义函数时在最前面加上inline,但并不是加上inline就是内联函数,inline时建议性关键字,编译器会自己判断该函数是否可以变成内联函数,内联函数适合短小精悍的函数-代码少,语法简单,无while for switch 等复杂逻辑语句。递归函数,虚函数一定不是内联函数。

好处:在函数调用时,inline函数在编译时可以将函数的调用以函数体替换(类似宏)来消除函数调用的时间开销inline是c++提供的高效方法

注意: 1.内联函数是一个空间换时间的做法,内联函数随可以提高效率但不是所有的函数都要用                   内联   函数,有些函数的时间开销远小于其函数体代码的执行时间那么效率提高的并不                   明 显,如果函数被大量调用时,要大量复制函数体代码,会有更多的内存被占用得不偿                 失。

            2.类——结构在类中既声明又定义的函数一般默认为内联函数,在类中只声明,在类外定                  义的函数一般不默认为内联函数,除非加inline。

Operator:重载操作符

注意:重载操作符是对原本操作符的补充和扩展

以函数的形式——函数名为:在operator后加要重载的操作符eg:operator+就是要重载+号;一般有返回值类型为了和后续的操作符继续操作;参数的数量要和操作符匹配,类型顺序要和使用场景匹配一致。eg:int  operator+(int a,int b){a * b};

扩展

在使用operator重载++时为了区分++num和num++:

num++会多一个整形参数,这个参数毫无意义只是为了区分

int  operator++(num,int){

return  num++;

}

左++:

int  operator++(num){

return  ++num;

}

同一个重载操作符函数在类内和类外的区别

1——类内的重载操作符函数的参数列表会默认有一个this指针,所以传参会比类外少一个

2——类内的重载操作符函数的参数列表的顺序相对来说固定,类外的可调,类内类外冲突问题

注意事项

1.重载操作符不能给默认值,否则会改变其使用规则

2.重载操作符函数的参数数量是根据操作符的使用规则定的

3.不能用重载操作符:    ?:      ::          sizeof

4.=  []  ->  ()只能在类内重载

5.在类外重载的操作符至少有一个要是自定义类型(class,struct)

6.不能改变其优先级,结合性,不能创造新的操作符。

额外

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值