首页 > 编程语言 >Effective C++ - 条款3 - 关于const的一切

Effective C++ - 条款3 - 关于const的一切

时间:2022-08-20 12:11:26浏览次数:58  
标签:返回 non const Effective iterator 成员 C++ 函数

const与*

符号左侧为所指对象的语义,符号右侧为指针自身语义

const与iterator

const iterator(是T* const) != const_iterator
详细原因应参考c++编译和c++设计与演化

const避免将==写成=

运算符的重载函数返回const对象可以避免运算结果被赋值,该赋值可能是由于错误将==写为=导致的

const成员函数

较为细节,建议看书

  1. 两个成员函数只是const/non-const,可以重载
  2. 如果non-const成员函数返回成员变量,函数声明中返回类型为非引用类型,则不能对返回值进行修改。原因应该是该返回值是右值(感觉这个错误还是比较容易避免,因为在写这个函数时就会思考,返回的内容如果后续被修改,是否具有可被修改的基础?)

标签:返回,non,const,Effective,iterator,成员,C++,函数
From: https://www.cnblogs.com/ijpq/p/16607488.html

相关文章

  • C++primer练习16.1-14
    练习16.1::实例化就是模板通过实际调用而确定类型及其运算,抽象到具体练习16.2template<typenameT>intcompare(constT&v1,constT&v2){if(v1<v2)return-1;......
  • let、const、var的区别
    块级作用域:let和const具有块级作用域;var不具有;块级作用域解决了ES5两个问题:内层变量可能覆盖外层变量用来计数的循环变量会泄露为全局变量变量提升:var存......
  • C++primer练习15.15-33
    练习15.15重新定义Bulk_quoteclassDisc_quote:publicQuote{public:Disc_quote()=default;Disc_quote(conststd::string&book,doublep......
  • C++模板(函数模板 & 类模板)
    模板编程可称范型编程,是一种忽视数据类型的编程方式,这样的好处是什么?且看下面一个例子:简单使用求解最值问题,返回两个值中的较大值:intMax(inta,intb){ returna>......
  • C++ std::transform的使用
    头文件:<algorithm>作用:std::transform在指定的范围内应用于给定的操作,并将结果存储在指定的另一个范围内  //字符串操作std::stringstr1="HelloWorld";......
  • UE5中 uDraper 插件无法编译 C++ 工程的修复
    UE5中uDraper插件无法编译C++工程的修复uDraper是用来做布料模拟的插件。现在出现的问题是安装了uDraper之后无法编译C++工程。经典报错就是:Expecting to find......
  • C++ 漫谈哈夫曼树
    1.前言什么是哈夫曼树?把权值不同的n个结点构造成一棵二叉树,如果此树满足以下几个条件:此n个结点为二叉树的叶结点。权值较大的结点离根结点较近,权值较小的结点离根......
  • Pybinder-python与c++的调用
    目录Areallygoodproject.ExportCpptopythonunerLinuxplatformAreallygoodproject.https://github.com/pybind/pybind11https://github.com/pybind/pyb......
  • C++学生健康信息收集系统
    C++学生健康信息收集系统学生健康信息收集系统简介一、 问题描述为了应对新型冠状病毒疫情,学校需要开发一个能够每天收集全校学生健康信息的系统,便于学校管理。不同学院......
  • 阅读《计算机图形学编程(使用OpenGL和C++)》6
    同一个场景渲染不同的对象,一种简单的方法是为每个模型使用单独的缓冲区。每个模型都需要自己的模型矩阵,这样我们就需要为我们渲染的每个模型生成一个新的模型-视图矩阵。还......