Constructor de movimiento y asignacion de movimiento

Iniciado por AnthonyS, 24 Febrero 2017, 14:42 PM

0 Miembros y 1 Visitante están viendo este tema.

AnthonyS

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 (cpp) [Seleccionar]

class Vector
{
    int size;
    double *elementos;
    public:
    Vector(int tam);
    Vector(const Vector& vec);
    Vector& operator =(const Vector& v);
    Vector(Vector&& vec); //Ctor. de mov.   ESTE METODO ME DA ERROR
    Vector& operator =(Vector&& v); //Ctor. de mov. ESTE TAMBIEN
    const double& operator[](const int i)const;
    double& operator [](const int i)const;
    int tam()const;
    ~Vector();
};


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

ivancea96

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.

AnthonyS

Me ha ayudado,muchas gracias por la solución.
Un saludo de antemano.
Anthony.