zoukankan      html  css  js  c++  java
  • 探究函数返回值、返回引用

    在一个类中,

    函数返回“值类型”:在执行=(赋值)时,在内存中会出现临时对象,由临时对象执行=(赋值操作)。

    函数返回“引用类型”:在执行=(赋值)时,而不会出现临时对象情况,只对数据进行了拷贝。

    #include<iostream>
    using namespace std;
    float temp;
    float fn1(float r){
        temp=r*r;
        return temp;
    } 
    float &fn2(float r){ //&说明返回的是temp的引用,换句话说就是返回temp本身
        temp=r*r;
        return temp;
    }
    int main(){
        float a=fn1(2.0); //case 1:返回值
        //float &b=fn1(5.0); //case 2:用函数的返回值作为引用的初始化值 [Error] invalid initialization of non-const reference of type 'float&' from an rvalue of type 'float'
                               //(有些编译器可以成功编译该语句,但会给出一个warning) 
        float c=fn2(2.0);//case 3:返回引用
        float &d=fn2(2.0);//case 4:用函数返回的引用作为新引用的初始化值
        cout<<a<<endl;//cout<<b<<endl;
        cout<<c<<endl;
        cout<<d<<endl;
        return 0;
    }
    注意:
    1.fn1返回值类型,=(赋值)给变量a。它会在内存中产生temp的副本来给a赋值。
    2.fn1返回值类型,=(赋值)给引用性变量是错误的。
    3.fn2返回引用类型,=(赋值)给变量c,它直接给c拷贝自己的副本。
    4.fn2返回引用类型,=(赋值)给引用变量d,d之后就会是temp的别名。



  • 相关阅读:
    如何查看自己的显卡是否支持DirectX 12
    笔记本屏幕忽然变暗的解决办法
    Python 自动给数字前面补0
    vscode左边侧边栏字体的大小
    .NET 异步详解
    新版 C# 高效率编程指南
    轻松学会 React 钩子:以 useEffect() 为例
    React Hooks 入门教程
    UMI.js开发知识总结
    处理react项目ie11浏览器运行空白问题
  • 原文地址:https://www.cnblogs.com/single-dont/p/10424259.html
Copyright © 2011-2022 走看看