const形参与非const形参
应该将不修改相应实参的形参定义为const引用,否则将会带来如下问题:
1.不能通过字符串字面值来调用该函数
2.若定义函数如下
1 int A(string &a){} 2 int B(const string &b) 3 { 4 A(b);//编译错误 5 }
则会引起编译错误。
3.引用传递右值也是不允许的
1 int A(int &a){} 2 int main() 3 { 4 short v1=0; 5 const int v2=42; 6 int v3=A(v1);//错误,v1不是int 7 v3=A(v2);//错误,v2是const 8 v3=A(0);//错误,非左值 9 v3=A(v1+v2);//错误,非左值 10 int v4=A(v3);//正确 11 }
转载于:https://www.cnblogs.com/binger1990/archive/2012/12/19/2824574.html
const形参与非const形参相关推荐
- C++类中const函数与非const函数的调用规则
class EX{public:void constFunction() const; }; 如上所示,通过将类成员函数声明为const,以表示这个函数不可以修改类中的成员变量. 建议将不可以修改数据 ...
- 类中const函数及非const函数的调用规则
转自:点击打开链接 类中const函数及非const函数的调用规则 class Student { public:int getAge(){return m_age;}int getAge() con ...
- C++ const对象与非const对象的相互调用、const成员函数与非const成员函数的相互调用
1)const对象可以调用非const成员函数吗? 答:不能.const修饰的对象实则修饰的是该对象的this指针,并且const修饰的成员不能进行修改,如果使用const调用非const成员函数,可 ...
- const引用和非const引用
const引用可以初始化为不同类型的对象或者初始化为右值,同样的初始化对于非const引用却是不合法的. 非const引用只能绑定以与该引用同类型的对象中. const引用则可以绑定到不同但相关的类型 ...
- C++中const引用和非const引用的使用注意
今天学习时突然有疑惑,C++有了指针为何还要设计引用呢?后来看到一篇博客豁然开朗:为什么 C++ 有指针了还要引用? 总结一下: 代码更加简洁好看了 由于引用必须被初始化,并且之后也无法重新绑定其他对 ...
- const对象不能调用非const成员函数
在C++中,可以用const来定义一个const对象,但const对象不可以调用类中的非const成员函数 原因 引发原因:: 由调用成员函数时隐式传入的当前对象的this指针引起. 非const成员 ...
- const对象只能调用const成员函数、不能调用非const成员函数;非const对象可以调用const成员函数
引发原因: 由调用成员函数时隐式传入的当前对象的this指针引起. 1. 非const成员函数中的隐式参数:classA* this 2. const成员函数中的隐式参数:const classA* ...
- C++Primer:函数(参数传递-非引用形参)
1.参数传递 每次调用函数时,都会重新创建该函数所有的形参,此时所传递的实参将会初始化对应的形参. 形参的初始化与变量的初始化一样:如果形参具有非引用类型,则复制实参的值,如果形参为引用类型,则他只是 ...
- C++非const引用问题:error: cannot bind non-const lvalue reference of type
出现这个问题是因为把一个临时变量传入了函数的引用形参中,简化代码如下: void back(int &i){return; }int main(){back(1); } 应该改为: void ...
最新文章
- lucene源码分析的一些资料
- 设计模式学习之Factory Method模式和Abstract Factory模式
- Caffe cuDNN
- 爱奇艺如何开启两指双击触发奇观功能
- memcache两种客户端比较
- javascript加密七种方法
- 【kafka】关于Kafka Fetch Session的讨论
- 【总结】C++逻辑与或
- C#中Abstract和Virtual
- Python3分别将list、numpy数组、变量内容写入txt文件中
- 决策树,随机森林,集成学习的算法实现
- 捷联惯导系统学习7.2(捷联惯导精对准 )
- PMP第五章:项目范围管理
- Uber天使投资人杰森卡拉卡尼斯投资…
- ubuntu 常识(转)
- sql删除数据的3种方法
- EasyTV 手机电视
- csp序列查询(C语言)
- 高通平台开发系列讲解(网络篇)SFE软加速简介
- 笔记:腾讯云服务器的使用