Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: class_OpenGL en 20 Febrero 2017, 18:02 pm



Título: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
Publicado por: class_OpenGL en 20 Febrero 2017, 18:02 pm
Hola, muy buenas. Hoy quería preguntar si hay alguna forma de modificar una constante en la sobrecarga del operador igual. Ejemplo:


Código
  1. class Foo {
  2.   private:
  3.      const int VARIABLE;
  4.  
  5.   public:
  6.      [...]
  7.      Foo & operator=(const Foo &foo) {
  8.         VARIABLE = foo.VARIABLE; // Aquí marcaría error
  9.      }
  10.      [...]
  11. };


Muchas gracias


Título: Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
Publicado por: ivancea96 en 20 Febrero 2017, 19:22 pm
Si es una constante, es una constante. Si quieres modificar esa variable, entonces no es un uso correcto de la palabra const. Replantéate el por qué de ese const ahí.


Título: Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
Publicado por: class_OpenGL en 20 Febrero 2017, 19:25 pm
Quiero crear una clase Matriz la cual tendrá un número de filas y de columnas. Quiero que esas filas y esas columnas sean constantes. Sé que podría no poner const y prometerme a mi mismo que no modificaré esas variables, pero quiero tener seguro que no las modifico, salvo cuando le asigno a la matriz otra matriz (aquí obviamente cambiarían las dimensiones de la misma).


Título: Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
Publicado por: ivancea96 en 20 Febrero 2017, 19:30 pm
Pues prométetelo xD

No puedes decidir que una variable sea constante en una línea sí y en otra no. Además, el compilador puede tratar las constantes de forma diferente por cuestiones de optimización.

Si quieres estar seguro, pon const en los métodos que lo requieran. En el resto, pues simplemente no lo modifiques.


Título: Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
Publicado por: class_OpenGL en 20 Febrero 2017, 19:51 pm
Bueno, pues nada... Gracias


Título: Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
Publicado por: MAFUS en 21 Febrero 2017, 09:28 am
Recuerdo que existe la palabra friend para dat permisos a una clase o métodi para acceder a miembros privados de otra clase. Tal vez esto te sirve para lo qur buscas.