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

    类型:

      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+),无法返回引用,因为函数的结果未知(而且无法体现计算),正确的实现将要求按值返回。

  • 相关阅读:
    Python参考资料汇总
    Redis发布/订阅
    Redis读书笔记之API的理解和使用
    三、Dubbo源码学习笔记(一)之 Spring容器启动
    利用VMware在虚拟机上安装Zookeeper集群
    二、Dubbo相关文献链接
    一、Dubbo初体验
    @Retention小记
    EasyUI知识点杂记
    ---Mybatis3学习笔记(2)补充
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/6485808.html
Copyright © 2011-2022 走看看