C++基础:操作符

1 区分前置和后置 ++/--

以++为例

cpp 复制代码
前置++
UPInt& UPInt::operator++()
{
    *this += 1;
    return *this;
}

后置++
const UPInt UPInt::operator++(int)
{
    UPInt oldValue = *this;
    ++(*this);
    return oldValue;
}

可见后置操作额外生成了一个临时对象。

并且为了避免形如i++++(即使合法,也只会累加一次。++++i和嘎合法),这样的写法,后置++为返回值加上了const,会导致i++++错误,来避免上述写法。

2 不要重载&&,||和,操作符

2.1 "骤死式"语句

比如if语句中的 && 和 ||,保证了从左到右的执行顺序,并且当&&出现了false,其余的函数不执行并且直接返回判断。||出现了true也有一样的效果。

如果重载了&&和||,骤死式语句的特性将消失。

2.2 ,操作符

,的执行逻辑是,先执行,左侧,再执行逗号右侧,最后返回右侧的值。如果重载,无法保证左右执行顺序。

相关推荐
亮亮爱刷题11 分钟前
算法提升之数论(矩阵+快速幂)
线性代数·算法·矩阵
亿坊电商13 分钟前
AI 数字人在处理音频时,如何确保声音的自然度?
人工智能·算法·音视频
向左转, 向右走ˉ26 分钟前
随机森林算法原理及优缺点
算法·随机森林·机器学习
ZTLJQ36 分钟前
专业Python爬虫实战教程:逆向加密接口与验证码突破完整案例
开发语言·数据结构·爬虫·python·算法
我有一计33338 分钟前
【算法笔记】6.LeetCode-Hot100-链表专项
人工智能·算法·程序员
努力的小帅1 小时前
C++_红黑树树
开发语言·数据结构·c++·学习·算法·红黑树
CN-Dust1 小时前
【C++】指针
开发语言·c++
CoovallyAIHub2 小时前
YotoR模型:Transformer与YOLO新结合,打造“又快又准”的目标检测模型
深度学习·算法·计算机视觉
逐花归海.2 小时前
『 C++ 入门到放弃 』- 哈希表
数据结构·c++·程序人生·哈希算法·散列表
孟大本事要学习2 小时前
算法第29天|动态规划dp2:不同路径、不同路径Ⅱ、整数拆分、不同的二叉搜索树
算法·动态规划