#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; }
相关推荐
const引用是指向const对象的引用。 代码如下: const int i = 10; const int &ref = i; 可以读取ref,但不能修改。这样做是有意义的,因为i本身就不可修改,当然也不能通过ref来修改了。所以也就有将const变量赋值给...
const引用.cpp
C++引用—临时变量、引用参数和const引用 如果实参与引用参数不匹配,C++将生成临时变量。如果引用参数是const,则编译器在下面两种情况下生成临时变量: 实参类型是正确的,但不是左值 实参类型不正确,但可以转换为...
- 当函数的返回值为局部变量时,应该返回const引用,防止返回的局部变量被意外修改。 - 使用const保护类的不变量,确保对象状态的稳定。 总结,const关键字在C++编程中扮演着重要的角色,合理地使用const不仅可以...
这里我们要讨论的是一个重要的规则:临时变量不能作为非const引用的参数。这个规则涉及到C++的临时对象、引用的本质以及编译器对程序语义的理解。 首先,临时变量是在表达式中创建的,它们通常用于存储计算结果,...
需要注意的是,const引用e只能访问声明为const的函数,而不能访问一般的成员函数。 5. Const在函数声明中的应用 Const也可以用来修饰函数的返回值或某个参数,例如: A& operator=(const A& a); void fun0(const ...
3. **内部数据类型**:对于内部数据类型如`int`、`float`等,通常不建议使用“const引用传递”,因为这些类型的数据复制成本相对较低,使用引用反而可能会降低代码的清晰度。 #### 三、修饰函数的返回值 1. **指针...
const引用** `const`引用可以用来确保传递给函数的对象不会被修改。 ```cpp void fun(const B& b); ``` **6. const成员函数** 当一个成员函数被声明为`const`时,意味着它不会修改类的任何成员变量。 ```cpp ...
// ref是一个指向data的const引用 ``` #### 六、const与函数参数 `const`关键字还可以用于函数参数,表明这些参数在函数内部不会被修改。这对于传递大对象(如字符串)作为参数特别有用,因为它避免了不必要的...
4. **const引用** `const`引用是一种特殊的引用类型,只能用于读取,不能用于修改。它可以初始化为不同类型的对象,甚至是右值。例如: ```cpp double dval = 3.14; const int &ri = dval; // ri 是 dval 的 ...
需要注意的是,在引用或者指针参数的时候使用 const 限制是有意义的,而对于值传递的参数使用 const 则没有意义。同时,const 在 double 前或者后面意思相同,只是不同的写法不同。 三、const 对象 声明为 const ...
此外,const引用如`const double &v;`表示引用的对象不能被更新,但可以修改v引用的对象中const成员之外的部分。 在类型检查方面,const关键字可以帮助防止无意修改对象的值。可以将非const对象赋值给const指针,但...
// 使用const引用传递 ``` 这里使用`const A &a`作为参数,既可以避免创建不必要的临时对象,也可以保证`a`在函数内部不会被修改。 #### 三、用`const`修饰函数的返回值 ##### 3.1 返回指针的情况 当函数返回一...
此外,通过const引用返回值可以提高效率,因为不需要创建对象的副本。然而,在返回对象引用时,需要明确返回值的类型,是返回对象的“拷贝”还是“别名”,以避免错误。 const在C++中的应用提高了代码的安全性和...
1. **输入参数为const引用**:可以有效地提高程序的性能,减少不必要的拷贝操作。 2. **返回值为const**:虽然可以防止对象被修改,但也可能带来不便,如不能对返回的对象进行某些操作。 3. **成员函数中的const限定...
### 深入学习const和引用 在C++编程中,`const`关键字与引用是两个重要的概念。本文将从这两个方面入手,详细介绍它们的基本原理、应用场景以及如何正确使用。 #### 一、const关键字 `const`关键字用来声明一个...
常引用在保护函数参数不被修改时特别有用,同时也解决了C++中临时对象通常为const类型的问题,防止了非const引用尝试修改const对象的非法操作。 在实际编程中,理解并熟练运用引用,尤其是常引用,能够编写出更加...
// 错误,num是常量,不能绑定到非const引用 ``` 4、const和指针、引用的组合在函数参数中的应用 在函数参数中,const可以用于保护函数内部不修改传入的参数,提高代码的安全性和可读性。例如: ```cpp void print...