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

  • 相关阅读:
    hdu 1108 最小公倍数
    hdu 1106 排序
    hdu 1097 A hard puzzle
    hdu 1076 An Easy Task
    hdu 1064 Financial Management
    hdu 1061 Rightmost Digit
    hdu 1050 Moving Tables
    hdu 1060 Leftmost Digit
    hdu 1049 Climbing Worm
    hdu1104
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/6485808.html
Copyright © 2011-2022 走看看