elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?  (Leído 2,223 veces)
class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
(Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
« 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


En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
« Respuesta #1 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í.


En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
« Respuesta #2 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).
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
« Respuesta #3 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.
En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
« Respuesta #4 en: 20 Febrero 2017, 19:51 pm »

Bueno, pues nada... Gracias
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: (Consulta) [C++] ¿Se puede modificar una constante en la sobrecarga de '='?
« Respuesta #5 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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines