none
&求解 RRS feed

  • 问题

  • CSMTPAddress& CSMTPAddress::operator=(const CSMTPAddress& r)
    {
      m_sFriendlyName = r.m_sFriendlyName;
        m_sEmailAddress = r.m_sEmailAddress;
        return *this;
    }

    函数开头CSMTPAddress &这个地方使用这个符号,本人不是很理解,为什么要这样做。哪位手能从各个方面具体的帮忙分析下这个&的作用。返回*this,这个地方使用&到底有什么用途呢。

    2012年11月7日 7:59

答案

  • 返回值为引用可当左值使用,也就是说能对他进行一些修改,而前面加上了const关键字后,即意味着函数的返回值不能立即得到修改。 当函数返回引用类型时,没有复制返回值。相反,返回的是对象本身。
    返回引用注意不能返回局部变量的引用。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年11月8日 1:31
    版主

全部回复

  • 赋值操作符,参数传递的是引用,用const表示是防止意外的改动

    xiao

    2012年11月7日 8:23
  • 表示引用类型


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年11月7日 8:43
    版主
  • 是返回类型,不是形参,形参的作用是为了传递别名,但是返回类型为什么一定要是引用呢,我尝试去掉了&程序在运行的时候报错。
    2012年11月7日 12:38
  • 返回值为引用可当左值使用,也就是说能对他进行一些修改,而前面加上了const关键字后,即意味着函数的返回值不能立即得到修改。 当函数返回引用类型时,没有复制返回值。相反,返回的是对象本身。
    返回引用注意不能返回局部变量的引用。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年11月8日 1:31
    版主