zoukankan      html  css  js  c++  java
  • 函数的返回值

    1.返回非引用类型。

    • 函数运行结束时,会释放掉临时变量,但临时变量的空间即地址和空间的值不会被释放掉。因此不能返回临时变量的指针和引用。指针应该是和其所指向的对象同时存在的,不能让其成为悬垂指针,这样可能导致程序崩溃。
    • 函数的返回值用于初始化在调用函数处所创建的临时对象。临时对象的初始化方法和实参初始化形参的初始化方法一样。(非引用形参是实参的copy,引用是对象的别名,不需要复制返回值)如下图所示:

     

    临时对象赋值给 in后,赋值表达式结束,临时对象被析构。

    • 在使用一个临时对象( 可能是无名对象 或者 返回对象值时 ) 创建(初始化)构造另一个对象的过程的中,c++会优化掉该临时对象的产生,直接以相同参数调用相关构造函数构或者 直接调用拷贝构造函数 到 目标对象.
    • 若是对象赋值,则在赋值表达式的右值处的临时对象创建不能省略,临时对象赋值给左值后,表达式结束,临时对象被析构。(摘自博客http://www.cppblog.com/deane/archive/2010/02/25/108428.html)

    2.返回引用类型。

    • 当函数返回引用类型时,返回的是函数所调用的对象,没有复制返回值并且不会调用析构函数。

     参考链接:

    https://www.coursera.org/learn/cpp-chengxu-sheji

  • 相关阅读:
    Oracle Dataguard管理命令(logical standby)
    RAC 主库配置单实例ADG
    基于参数shared_pool_reserved_size进一步理解共享池shared pool原理
    线性表的本质和操作
    类族结构的进化
    顶层父类的创建
    异常类的构建——5个子类构建
    异常类的构建——顶层父类Exception的实现
    智能指针示例
    泛型编程简介
  • 原文地址:https://www.cnblogs.com/helloforworld/p/5655233.html
Copyright © 2011-2022 走看看