`

const 引用

 
阅读更多
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int ival = 0;
const int ival3 = 1;

int * const & ref = &ival;

// int * & ref2 = &ival; //错误,因为 &ival 是const 类型,const类型的引用是const引用
int * const & ref2 = &ival;

 int * const & ref1 = &ival3; // 错误,因为ival3是const int 类型, 
 //error: invalid conversion from 'const int*' to 'int*' [-fpermissive]
 
const int * const & ref4 = &ival3;

return 0;
}
  •  error: invalid conversion from 'const int*' to 'int*' ,int* 是指 int * const & ref1 , const int * 是指 const int ival3
  • 编译器认为是 将左值绑定到右值
#include <iostream>
using std::cout;
using std::endl;
int main()
{
int * ival = 0;
const int ival3 = 1;

int * const & ref = ival;

ival++;


// int * & ref2 = &ival; //错误,因为 &ival 是const 类型,const类型的引用是const引用
const int * const & ref2 = ival;
ival++;
*ref2 = 0;//assignment of read-only location '*(const int*)ref2'

 //int * const & ref1 = &ival3; // 错误,因为ival3是const int 类型, 
 //error: invalid conversion from 'const int*' to 'int*' [-fpermissive]
 
//const int * const & ref4 = &ival3;

return 0;
}

 

分享到:
评论

相关推荐

    c++ const引用与非const引用介绍

    const引用是指向const对象的引用。 代码如下: const int i = 10; const int &ref = i; 可以读取ref,但不能修改。这样做是有意义的,因为i本身就不可修改,当然也不能通过ref来修改了。所以也就有将const变量赋值给...

    const引用.cpp

    const引用.cpp

    C++ const引用、临时变量 引用参数详解

    C++引用—临时变量、引用参数和const引用 如果实参与引用参数不匹配,C++将生成临时变量。如果引用参数是const,则编译器在下面两种情况下生成临时变量: 实参类型是正确的,但不是左值 实参类型不正确,但可以转换为...

    c++中const关键字使用详解

    - 当函数的返回值为局部变量时,应该返回const引用,防止返回的局部变量被意外修改。 - 使用const保护类的不变量,确保对象状态的稳定。 总结,const关键字在C++编程中扮演着重要的角色,合理地使用const不仅可以...

    c++中临时变量不能作为非const的引用参数的方法

    这里我们要讨论的是一个重要的规则:临时变量不能作为非const引用的参数。这个规则涉及到C++的临时对象、引用的本质以及编译器对程序语义的理解。 首先,临时变量是在表达式中创建的,它们通常用于存储计算结果,...

    c++里const用法归纳

    需要注意的是,const引用e只能访问声明为const的函数,而不能访问一般的成员函数。 5. Const在函数声明中的应用 Const也可以用来修饰函数的返回值或某个参数,例如: A& operator=(const A& a); void fun0(const ...

    CONST用法

    3. **内部数据类型**:对于内部数据类型如`int`、`float`等,通常不建议使用“const引用传递”,因为这些类型的数据复制成本相对较低,使用引用反而可能会降低代码的清晰度。 #### 三、修饰函数的返回值 1. **指针...

    const与static用法完整总结

    const引用** `const`引用可以用来确保传递给函数的对象不会被修改。 ```cpp void fun(const B& b); ``` **6. const成员函数** 当一个成员函数被声明为`const`时,意味着它不会修改类的任何成员变量。 ```cpp ...

    C++ 中const总结

    // ref是一个指向data的const引用 ``` #### 六、const与函数参数 `const`关键字还可以用于函数参数,表明这些参数在函数内部不会被修改。这对于传递大对象(如字符串)作为参数特别有用,因为它避免了不必要的...

    C++语言const 关键字使用方法图文详解

    4. **const引用** `const`引用是一种特殊的引用类型,只能用于读取,不能用于修改。它可以初始化为不同类型的对象,甚至是右值。例如: ```cpp double dval = 3.14; const int &ri = dval; // ri 是 dval 的 ...

    C++ const使用详解

    需要注意的是,在引用或者指针参数的时候使用 const 限制是有意义的,而对于值传递的参数使用 const 则没有意义。同时,const 在 double 前或者后面意思相同,只是不同的写法不同。 三、const 对象 声明为 const ...

    c语言const.pdf

    此外,const引用如`const double &v;`表示引用的对象不能被更新,但可以修改v引用的对象中const成员之外的部分。 在类型检查方面,const关键字可以帮助防止无意修改对象的值。可以将非const对象赋值给const指针,但...

    C++之const详解

    // 使用const引用传递 ``` 这里使用`const A &a`作为参数,既可以避免创建不必要的临时对象,也可以保证`a`在函数内部不会被修改。 #### 三、用`const`修饰函数的返回值 ##### 3.1 返回指针的情况 当函数返回一...

    使用const提高函数的健壮性

    此外,通过const引用返回值可以提高效率,因为不需要创建对象的副本。然而,在返回对象引用时,需要明确返回值的类型,是返回对象的“拷贝”还是“别名”,以避免错误。 const在C++中的应用提高了代码的安全性和...

    const的用法,较详细(c++)

    1. **输入参数为const引用**:可以有效地提高程序的性能,减少不必要的拷贝操作。 2. **返回值为const**:虽然可以防止对象被修改,但也可能带来不便,如不能对返回的对象进行某些操作。 3. **成员函数中的const限定...

    深入学习const和引用

    ### 深入学习const和引用 在C++编程中,`const`关键字与引用是两个重要的概念。本文将从这两个方面入手,详细介绍它们的基本原理、应用场景以及如何正确使用。 #### 一、const关键字 `const`关键字用来声明一个...

    C++中的引用

    常引用在保护函数参数不被修改时特别有用,同时也解决了C++中临时对象通常为const类型的问题,防止了非const引用尝试修改const对象的非法操作。 在实际编程中,理解并熟练运用引用,尤其是常引用,能够编写出更加...

    C++中const与指针、引用的分析

    // 错误,num是常量,不能绑定到非const引用 ``` 4、const和指针、引用的组合在函数参数中的应用 在函数参数中,const可以用于保护函数内部不修改传入的参数,提高代码的安全性和可读性。例如: ```cpp void print...

Global site tag (gtag.js) - Google Analytics