const、&在定义函数返回的作用及接收返回变量的类型
来源:互联网 发布:网络维护和通信课程 编辑:程序博客网 时间:2024/05/19 18:16
直接看示例代码:
int main(){ int &s1 = f.f1(); cout << s1 <<endl; //输出5 s1 = 20; //通过引用,改变了mszT f.print(); //输出20 //int s1 = f.f1(); //语句成立,但无法通过s1改变mszT了 int &s3 = f.f3(); //语句报错,f3返回类型是const,所以接收的变量必须为const。 int const &s3 = f.f3(); // 正确 cout << s3 << endl; //输出 5 s3 = 20; // 语句报错,const类型无法改变 //const int s3 = f.f3(); //正确,但无法通过s3改变mszT了}class sz{public: int &f1(){ mszT = 5; return mszT; } int f2() const{ return mszT; } const int &f3(){ mszT = 5; return mszT; } const int &f4()const{ return mszT; } void print(){ cout << mszT << endl; }private: int mszT;};
结论:通过上面的分析可以得出,int &f1(){}
及const int &f3()
中的&使得返回一个引用,接收变量可以定义成相同类型的引用或非引用。如对于接收int &f1(){}
的变量可以写成int &a = f1()
或int a = f1()
。但返回引用的目的就是为了提高程序效率,因为这避免了复制到临时变量这个过程,所以最好把接收的变量也定义成引用。
有const时,接收变量必须定义成const类型,如对于const int &f3(){}
的接收变量必须写成const int &b = f3()
或不带&的const int b = f3()
。
当接收变量如果是引用且非const时,则可以改变引用的对象。如对int &f1(){}
,int &a = f1()
,则改变a
可以改变f1
里面的内容。
阅读全文
0 0
- const、&在定义函数返回的作用及接收返回变量的类型
- const作为函数返回值的作用
- 函数返回的临时对象为const类型,const引用
- 【ThinkingInC++】40、论const对函数返回值的作用
- 函数的返回类型
- 函数的返回类型
- [跨平台C++] 返回const char* 类型的函数样板
- c/c++中const成员函数的返回值类型
- 类的作用域问题,形参表函数体处在作用域中,而函数返回类型不一定在作用域中
- 使用@RequestMapping 定义处理器函数-支持的函数返回类型
- 为什么在函数中不能通过指针返回本地定义的变量
- const 类型的函数不能返回非const类型的引用
- const 类型的函数不能返回非const类型的引用
- const 作为函数返回类型
- C++中函数定义返回类型和内部实现返回类型不同的原因
- C++中函数定义返回类型和内部实现返回类型不同的原因
- 定义整形变量来接收getchar()返回的值的原因(方便查看转帖)
- 函数局部变量的返回
- 三 调试 Progressive Web Apps
- nginx+tomcat 配置负载均衡
- spark Streaming编写一个WorldCount的例子
- 添加分割线
- JavaScript概述
- const、&在定义函数返回的作用及接收返回变量的类型
- Hitchhiker:原创开源API协作测试工具
- JSON.stringify使用
- phpstudy
- 房屋管理系统简单Damo
- WIFi
- USRP B210 LINUX环境搭建
- Qt 发布程序提示Driver not loaded Driver not loaded
- 解决苹果手机里面的网页返回不刷新页面的问题