Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: AnthonyS en 24 Febrero 2017, 14:42 pm



Título: Constructor de movimiento y asignacion de movimiento
Publicado por: AnthonyS en 24 Febrero 2017, 14:42 pm
Buenas tardes,estoy haciendo una clase sencilla que ilustre como se definen el constructor de movimiento y la asignacion por movimento,pero me da un error tras indicar que no acepta && en el prototipo del constructor de mov.

Código
  1. class Vector
  2. {
  3.    int size;
  4.    double *elementos;
  5.    public:
  6.    Vector(int tam);
  7.    Vector(const Vector& vec);
  8.    Vector& operator =(const Vector& v);
  9.    Vector(Vector&& vec); //Ctor. de mov.   ESTE METODO ME DA ERROR
  10.    Vector& operator =(Vector&& v); //Ctor. de mov. ESTE TAMBIEN
  11.    const double& operator[](const int i)const;
  12.    double& operator [](const int i)const;
  13.    int tam()const;
  14.    ~Vector();
  15. };
  16.  

Por favor que alguien me aclare porque esta este error.
Gracias de antemano.
Un saludo.


Título: Re: Constructor de movimiento y asignacion de movimiento
Publicado por: ivancea96 en 24 Febrero 2017, 14:58 pm
Esos constructores existen desde C++11. Tendrás que compilar con C++11 activado.

Si usas GCC, en la línea de comandos, pondrías -std=c++11. Si tienes otro IDE o compilador y no sabes ponerlo, comenta cuál es.

Pero vaya, que el error es ese, que antes de C++11 no existía eso.


Título: Re: Constructor de movimiento y asignacion de movimiento
Publicado por: AnthonyS en 1 Marzo 2017, 19:32 pm
Me ha ayudado,muchas gracias por la solución.
Un saludo de antemano.
Anthony.