void print1(int a)
{
cout<<a<<endl;
} void print2(const int& a)
{
cout<<a<<endl;
} void print3(int& a)
{
cout<<a<<endl;
} int main()
{
int a = ;
int& b = a;
const int& c = a; print1(a);
print1(b);
print1(c); print2(a);
print2(b);
print2(c); print3(a);
print3(b);
print3(c); return ;
}

编译以上代码,仅print3(c)处报错:

error: C2664: “void print3(int &)”: 无法将参数 1 从“const int”转换为“int &”转换丢失限定符

因此,const引用可以给非const引用赋值,而反过来不行,所以编写接口参数时,尽量使用const引用

const引用与非const引用的更多相关文章

  1. const形参与非const形参

    在程序设计中我们会经常调用函数,调用函数就会涉及参数的问题,那么在形参列表中const形参与非const形参对传递过来的实参有什么要求呢? 先来看一个简单的例子: #include <iostr ...

  2. 函数参数,const 引用 和 非 const引用是不同的函数。

    举个例子, void f(const int &x) 和 void f(int &x) 是不同的函数. 函数的返回值不能作为区分

  3. C++中const对象和非const对象调用成员函数问题

    一.类MyClass 二.主函数调用 三.结果

  4. 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用

    [源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, con ...

  5. const和非const函数重载

    成员函数后面加const,表示在该函数中不能对类的数据成员进行改变,比如下面的代码: #include <stdio.h> class A { private: mutable int a ...

  6. const成员函数和const对象

    从成员函数说起 在说const成员函数之前,先说一下普通成员函数,其实每个成员函数都有一个隐形的入参:T *const this. int getValue(T *const this) { retu ...

  7. 临时变量不能作为非const类型引用形参的实参

    摘要:     非const 引用形参只能与完全同类型的非const对象关联.      具体含义为:(1)不能用const类型的对象传递给非const引用形参:                  ( ...

  8. C++-const_cast只能用于指针和引用,对象的const到非const可以用static_cast

    Static_cast可以对对象也可以对指针也可以对引用,但是const_cast只可以对指针和引用使用,后者不可以对对象用,如果你要把一个const值转化为非const值只能用隐式执行或通过使用st ...

  9. 非const引用参数传入不同类型编译不过的理解(拒绝将临时对象绑定为非const的引用的形参是有道理的)

    int f (int & I) { cout<<I<<std::endl; } void main() { long L; f(L); // 编译不过 f((int)L ...

随机推荐

  1. Task 6.4 冲刺Two之站立会议5

    在完成主界面和聊天窗口的连接之后,今天对聊天界面在以前的基础上添加了很多东西,比如说对于文件传输和文字通信时的表情包的添加以及抖动窗口的设置等等一一系列的功能.我完成的是文字通信这一部分的内容.

  2. Android开发中常见的内存泄露案例以及解决方法总结

    1.单例模式引起的内存泄露 由于单例模式的静态特性,使得它的生命周期和我们的应用一样长,如果让单例无限制的持有Activity的强引用就会导致内存泄漏如错误代码示例: public class Use ...

  3. mysql数据优化--数据库结构的优化

    1,比如存时间类型的就使用int类型   其中mysql的两个函数可以拿来使用 unix_timestamp 将时间日期转化为时间戳

  4. SQLSERVER 使用XP开头的系统默认存储过程

    1. 根据官网上面的内容进行执行命令 EXEC xp_cmdshell 'dir *.exe'; 但是会报错 消息 ,级别 ,状态 ,过程 xp_cmdshell,行 [批起始行 ] SQL Serv ...

  5. 能把opencv的源码也进行调试吗?(需要pdb文件才行)

    能把opencv的源码也进行调试吗?(需要pdb文件才行)1.我是用的Qt Creator,然后"工具\选项\调试器\概要\源码路径映射"中,选择"添加Qt源码" ...

  6. PHP中的PEAR是什么?

    PEAR也就是为PHP扩展与应用库(PHP Extension and Application Repository),它是一个PHP扩展及应用的一个代码仓库. 补充:php中扩展pecl与pear ...

  7. CF235C_Cyclical Quest

    很好的一个自动机的题目. 给原串,和若干个询问串.求原串里有多少个不同子串可以通过询问串循环移动得到. 有点类似求两个串的lcs,但是灵活一点. 首先我们把询问串长度扩大一倍,去掉最后一个字符.因为最 ...

  8. BZOJ2958 序列染色(动态规划)

    令f[i][0/1/2][0/1]表示前i位,不存在满足要求的B串和W串/存在满足要求的B串不存在W串/存在满足要求的B串和W串,第i位填的是B/W的方案数.转移时考虑连续的一段填什么.大讨论一波后瞎 ...

  9. P2236 [HNOI2002]彩票

    题目描述 某地发行一套彩票.彩票上写有1到M这M个自然数.彩民可以在这M个数中任意选取N个不同的数打圈.每个彩民只能买一张彩票,不同的彩民的彩票上的选择不同. 每次抽奖将抽出两个自然数X和Y.如果某人 ...

  10. Udp广播的发送和接收(iOS + AsyncUdpSocket)下篇

    接上篇C#的Udp广播的发送和接收 http://www.cnblogs.com/JimmyBright/p/4637090.html ios中使用AsyncUdpSocket处理Udp的消息非常方便 ...