функция, возвращающая этот указатель в c ++

1-й код:

#include <iostream>
using namespace std;
class demo
{
  int a;
public:
  demo():a(9){}
  demo& fun()//return type isdemo&
  {
    return *this;
  }
};

int main()
{
  demo obj;
  obj.fun();
  return 0;
}

2-й код:

#include <iostream>
using namespace std;
class demo
{
  int a;
public:
  demo():a(9){}
  demo fun()//return type is demo
  {
    return *this;
  }
};

int main()
{
  demo obj;
  obj.fun();
  return 0;
}

в чем разница между этими двумя кодами, поскольку оба работают в gcc? Я здесь новичок, так что простите меня, если я спрашиваю неправильно.

5
задан Erik 20 April 2011 в 11:20
поделиться