运算符重载与操作数优先级问题

运算符重载与操作数优先级问题

运算符重载问题

在这里插入图片描述
运算符的重载有以下几点需要注意:
1.不是所有的运算符都能被重载。
2.重载不能改变运算符的优先级和结合性
3.重载不会改变运算符的用法,原有有几个操作数、操作数在左边还是在右边,这些都不会改变
4.运算符重载函数不能有默认的参数
5.运算符重载函数既可以作为类的成员函数,也可以作为全局函数
6.箭头运算符->、下标运算符[ ]、函数调用运算符( )、赋值运算符=只能以成员函数的形式重载

操作符优先级

在这里插入图片描述
先摘录谭浩强《C程序设计》对运算符优先级的两点说明:

  1. 同一优先级的运算符,运算次序由结合方向来决定。
    例如:
    a) * 与 / 具有相同的优先级别,其结合方向为自左向右,因此3 * 5 / 4的运算次序是先乘后除;
    b) - 和 ++ 为同一优先级,结合方向为自右向左,因此 - i ++ 相当于 - ( i ++ )。

  2. 从上述表中可以大致归纳出各类运算符优先级:

    初等运行符->单目运算符->算术运算符->关系运算符->逻辑运算符->条件运算符->赋值运算符->逗号运算符

经过分析总结,编成顺口溜6句以助记忆:

初等单目一二级, // 初等运算符和单目运算符分别是第1、2优先级

乘除求余加减移, // 这句里面的运算符全归为算术运算符,移表示移位

关系等于不等于, // 关系运算符(< <= > >=)

按位与来异或或, // 位运算符优先级顺序: & -> ^ -> |

逻辑与或条件弱, // 逻辑运算符优先级顺序: && -> ||,后面跟着优先级比较低(弱)的条件运算符

赋值逗号一点破。 // 赋值,逗号最低
————————————————
版权声明:本文为CSDN博主「skywalker_leo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/skywalker_leo/article/details/6237222

内联函数

使用内联函数的时候要注意:

  • 递归函数不能定义为内联函数
  • 内联函数一般适合于不存在while和switch等复杂的结构且只有1~5条语句的小函数上,否则编译系统将该函数视为普通函数。
  • 内联函数只能先定义后使用,否则编译系统也会把它认为是普通函数。
  • 对内联函数不能进行异常的接口声明

面向对象的五大基本原则 -

五个基本原则:

  • 单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。
  • 开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。
  • Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。
  • 依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。
  • 接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口

参考:C语言运算符优先级 之 快速记忆

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值