1. int set()
    2. {
    3. return a;
    4. }
    • 此时生成的是变量a的一个拷贝,即生成了一个临时变量,当这个变量使用完毕之后,变量就被销毁了,所以这种返回不能用作左值运算
    • 如:set() = 5;这是不正确的。

      1. int& set()
      2. {
      3. return a;
      4. }
    • 返回的是引用,那么,就相当于返回的是变量a的别名,就可以对该变量操作,如赋值等等。

    • set() = 5;是正确的。
    • 但是在引用返回时得注意一个问题,就是不能返回局部变量的引用,如:

      1. int& set()
      2. {
      3. int a;
      4. return a;
      5. }
    • 此时就会调用出错,因为a是临时变量,函数结束是就自动销毁了,不能再创建别名了。

    • 但是将int & 改成int就可以了。