【More Effective C++】条款7:不要重载、||和,操作符

news/2024/11/28 14:39:23/

真假值表达式:

  • 一旦真假值确定,即使表达式中有尚未计算的部分,也不会计算
  • 表达式的计算总是从左向右计算

不能重载的 && 和 || 的理由:

  • 所有的表达式都需要计算
  • 不确定函数调用顺序
int rangeCheck(int index, int lowerBound, int upperBound) {if ((index < lowerBound) && (index > upperBound)) {return -1;}return 0;
}// if (expression1 && expression2) 
// if (operator&&(expression1, expression2))

逗号表达式:

  • for循环最后一个部分是一个表达式
  • 先计算左侧的值,在计算逗号右侧的值
  • 整个表达式的值是逗号右侧表达式的值

不能重载的原因是:不能保证函数的调用顺序,来和现有的行为保证一致

void reverse(char s[]) {for (int i = 0, j = strlen(s); i < j; i++, j--) {char c = s[i];s[i] = s[j];s[j] = c;}
}

不能重载的表达有

// .   .*  ::  ?:  new delete  sizeof  typeid  
// static_cast dynamic_cast    const_cast  reinterpret_cast
// 下面的表达式可以重载
// operator new    operator new[]    operator delete   operator delete[]


http://www.ppmy.cn/news/1360316.html

相关文章

为什么选择 SaaS SIEM ?

当今的企业越来越依赖技术&#xff0c;这意味着无懈可击的网络安全的重要性怎么强调也不为过。随着组织应对现代数字生态系统的复杂性&#xff0c;维护系统的完整性已不再只是“可有可无”&#xff0c;而是一种必需。  这就是安全信息和事件管理 (SIEM)作为网络安全中最重要…

JavaScript原型继承与面向对象编程思想

原型继承与面向对象编程思想 在JavaScript中&#xff0c;原型(prototype)、构造函数(constructor)和实例对象(instance)是面向对象编程中的重要概念&#xff0c;并且它们之间存在着紧密的关系。 原型(prototype)&#xff1a;原型是JavaScript中对象之间关联的一种机制。每个Ja…

AUTOSAR汽车电子嵌入式编程精讲300篇-基于深度学习的车载总线网络入侵检测(续)

目录 3 基于 GAF-VGG 模型的 CAN 总线入侵检测方法 3.1 格拉姆角场 3.1.1 格拉姆角场理论

深入探索pdfplumber:从PDF中提取信息到实际项目应用【第94篇—pdfplumbe】

深入探索pdfplumber&#xff1a;从PDF中提取信息到实际项目应用 在数据处理和信息提取的过程中&#xff0c;PDF文档是一种常见的格式。然而&#xff0c;要从PDF中提取信息并进行进一步的分析&#xff0c;我们需要使用适当的工具。本文将介绍如何使用Python库中的pdfplumber库来…

设计模式学习笔记 - 面向对象 - 6.为什么要基于接口而非实现编程?有必要为每个类都定义接口吗?

前言 “基于接口而非实现编程”这个原则非常重要&#xff0c;是一种非常有效的提高代码质量的手段&#xff0c;在平时的开发中经常被用到。 如何解读原则中的“接口”二字 要理解“基于接口而非实现编程”的关键就是要理解其中的“接口”二字&#xff0c;我们可以理解为编程语…

六、回归与聚类算法 - 模型保存与加载

目录 1、API 2、案例 欠拟合与过拟合线性回归的改进 - 岭回归分类算法&#xff1a;逻辑回归模型保存与加载无监督学习&#xff1a;K-means算法 1、API 2、案例

v-html有什么问题

使用 v-html 指令可以将一个字符串作为 HTML 动态渲染到 Vue 模板中的某个元素上。虽然 v-html 提供了将动态 HTML 插入到模板的便利性&#xff0c;但过度使用 v-html 可能导致一些问题&#xff1a; 安全性问题&#xff1a;使用 v-html 可能存在安全风险&#xff0c;特别是当插…

springboot+vue项目部署配置开机自启动

1.前端部属 下载nginx解压&#xff0c;在nginx\conf下找到nginx.conf 添加如下代码 server {listen 8081;server_name localhost;charset utf-8;location / {root F:/1ceshi/dist; #前端打包路径try_files $uri $uri/ /index.html;index index.html index.htm;}l…