Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/02/2014, 08:52
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 6 meses
Puntos: 61
Respuesta: Devolvcion por referencia o normalmente

El compilador tratará lo retornado como const, chequeando cada vez para que no pueda utilizarse en lugares donde una const no es aceptada.

Esto no impide modificar usando lo retornado por ese metodo. Esta dejando la puerta abierta para hacerlo. Por ejemplo:

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class M {
  5.   int x;
  6. public:
  7.   M() : x(0) {}
  8.   const int& f() { return x; }
  9.   void printme() { cout << x << endl; }
  10. };
  11.  
  12. int main()
  13. {
  14.    M m;
  15.    m.printme();
  16.    // m.f() = 3;  // ERROR de compilacion
  17.    *((int *)&m.f()) = 3;
  18.    m.printme();
  19.    return 0;
  20. }
__________________
Visita mi perfil en LinkedIn

Última edición por CalgaryCorpus; 06/02/2014 a las 09:23