再谈const: 用const 修饰函数的返回值
来源:互联网 发布:centos 网卡uuid 编辑:程序博客网 时间:2024/05/22 01:35
若函数的返回值是指针,且用const修饰,则函数返回值指向的内容是常数,不可被修改,此返回值仅能赋值给const修饰的相同类型的指针。如:
1 const int * f1(){
2 int * p;
3 p = new int;
4 *p = 1;
5 return p;
6 }
7 int main(){
8 const int * p1;
9 p1 = f1();
10 return 0;
11 }
若第8行改为int *p1;则编译时报错:“[8] error: invalid conversion from 'const int*' to 'int*'” (编译器code::block);
若主函数改为:
7 int main(){
8 const int * p1;
9 p1 = f1();
10 *p1 = 2;
11 return 0;
12 }
则编译时报错:"[10] error: assignment of read-only location '* p1'" (编译器code::block);
如果函数返回值是数值(by value),因C++中,返回值会被复制到外部临时的存储单元中,故const 修饰,中没有任何价值的。例:不要把函数int fun1() 写成const int func1()。
同理不要把函数A GetA(void) 写成const A GetA(void),其中A 为用户自定义的数据类型。
如果返回值是对象,将函数A fun2() 改写为const A & fun2()的确能提高效率。但此要注意,要确定函数究竟是想返回一个对象的“copy”,还是仅返回对象的“别名”即可,否则程序会出错。
- 再谈const: 用const 修饰函数的返回值
- const修饰函数参数 const修饰函数返回值 const修饰成员函数
- 修饰函数和函数返回值的const的差别
- 修饰函数和函数返回值的const的差别
- 修饰函数和函数返回值的const的差别
- const的三种用法(修饰函数参数、修饰函数返回值、修饰整个函数)
- 关于const 和&修饰函数返回值的问题
- 修饰函数的const和函数返回值的const区别
- (3)用const修饰函数的参数和函数的返回值
- const修饰的函数
- C++ const修饰函数、函数参数、函数返回值
- C++ const修饰函数、函数参数、函数返回值
- C++ const修饰函数、函数参数、函数返回值 浅析
- const 修饰函数参数,返回值,函数体
- const 修饰函数参数,返回值,函数体
- const 修饰函数参数,返回值,函数体
- const 修饰函数参数,返回值,函数体
- const 修饰函数参数,返回值,函数体
- unable to resolve superclass of 的奇怪问题和一种解决方法!
- Java——多线程编程【1】
- centos上redmine跟SVN的整合
- Oracle命令--如何卸载Oracle数据库
- C++ INI封装类
- 再谈const: 用const 修饰函数的返回值
- <数据结构>stack & queue
- SQL语法大全
- 第二小元素
- js计算文本框当前值输入的字数
- python pandas10分钟入门
- Oracle命令--数据库用户管理
- android 4.0 系统设置dhcp获取ip增加option60 选项
- escache访问webservice做缓存