• 函数返回值


    类型:

      T f();按值返回T;

      T* f();返回T类对象的指针/地址;

      const T* f();返回指向const.T类对象的指针

      T &f();返回对T对象的引用;

      const T& f();返回对const T对象的引用;

    Notes:

    1.绝不能返回对局部变量的引用(或指向局部变量的指针)。一旦离开函数,局部变量将被销毁,但在此之后,引用(或指针)仍然存在,他依旧引用(或指向)某些已不存在的对象。

    2.在函数中创建新对象,想把他的所有权转交给主调函数,则可以通过返回指针的方式实现(返回引用或值则无法转移所有权或者说很难实现)。

    3.const char* getname() const;

    只能读取返回的指针所指向的内容,且无法删除他。

    char *getname() const;

    返回非const指针,将抵消const函数的优点,编译器将监测出错误;

    4.返回一个基本类型(char,int,long),那么按值返回和按引用或指针返回效率相同。但是按值返回更为安全。

    5.在某些情况下(如operation+),无法返回引用,因为函数的结果未知(而且无法体现计算),正确的实现将要求按值返回。

  • 相关阅读:
    烦人的警告 Deprecated: convertStrings was not specified when starting the JVM
    Python 推送RabbitMQ
    JavaScript-json数组排序
    CSS-返回顶部代码
    CSS-页面滑屏滚动原理
    CSS-图像映射
    CSS-下拉导航条
    CSS-background-position百分比
    CSS- 横向和纵向时间轴
    JavaScript-闭包深入浅出
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/6485808.html
Copyright © 2020-2023  润新知