Почему возврат ссылки на автоматическую переменную работает?

Я сейчас читаю оC ++и я прочитал, что при использовании возврата по ссылке я должен убедиться, что я не возвращаю ссылку на переменную, которая выйдет из области видимости, когда функция вернется.

Так почему вAdd функционировать объектcen возвращается по ссылке и код работает правильно ?!

Вот код:

#include <iostream>
using namespace std;

class Cents
{
 private:
 int m_nCents;

 public:
 Cents(int nCents) { m_nCents = nCents; }

int GetCents() { return m_nCents; }
};

Cents& Add(Cents &c1, Cents &c2)
{
   Cents cen(c1.GetCents() + c2.GetCents());
   return cen;
}

int main()
{
   Cents cCents1(3);
   Cents cCents2(9);
   cout << "I have " << Add(cCents1, cCents2).GetCents() << " cents." << std::endl;

   return 0;
}

Я использую CodeBlocks IDE поверх Win7.

Ответы на вопрос(3)

Ваш ответ на вопрос