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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [DUDA]Propiedades o constantes
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA]Propiedades o constantes  (Leído 1,708 veces)
SLUGER

Desconectado Desconectado

Mensajes: 46


...


Ver Perfil WWW
[DUDA]Propiedades o constantes
« en: 23 Mayo 2012, 02:40 am »

Hola,

Estoy creando un programa que usa varias clases, el problema es que no se como programar las clases. Para que quede mas claro, un ejemplo; tengo una clase Rectangulo, esta clase se encarga de dibujar un rectángulo de dos colores distintos, un color para el contorno y otro color para el relleno. Los colores ya estan definidos dentro de la aplicacion; Rojo para el contorno y Verde para el relleno. Como ya sé que colores quiero que tenga mi rectangulo, deberia de establecerlos como constantes de la clase Rectangulo:
Código
  1. class Rectangulo
  2. {
  3.    public:
  4.        Rectangulo();
  5.    private:
  6.        static const int _penColor = Rojo;
  7.        static const int _brushColor = Verde;
  8. };
  9.  

O debería de establecerlos como propiedades de la clase y ya luego en la función main tener definidas las constantes:
Código
  1. class Rectangulo
  2. {
  3.    public:
  4.        Rectangulo(int penColor, int brushColor);
  5.        // ... getters y setters de los colores ...
  6.    private:
  7.        int _penColor;
  8.        int _brushColor;
  9. };
  10.  
  11. ...
  12.  
  13. #define PENCOLOR Rojo
  14. #define BRUSHCOLOR Verde
  15.  
  16. void main()
  17. {
  18.     Rectangulo rect1(PENCOLOR, BRUSHCOLOR)
  19. }
  20.  
Y otra cosa, en el ultimo código, a pesar de que siempre en mi código voy a utilizar el constructor, para que definir getters y setter, ademas de que ya se establecieron los colores dentro de la aplicación.


En línea

KaL3o

Desconectado Desconectado

Mensajes: 60



Ver Perfil
Re: [DUDA]Propiedades o constantes
« Respuesta #1 en: 23 Mayo 2012, 03:24 am »

yo lo haria de la segunda forma q has colocado

Para que quede mas claro, un ejemplo; tengo una clase Rectangulo, esta clase se encarga de dibujar un rectángulo de dos colores distintos, un color para el contorno y otro color para el relleno.

puesto q segun lei, la clase debe dibujar el rectangulo de dos colores diferentes, y si te cambian el main deberia ser capaz de pintar el rectangulo de otros colores y no solamente rojo y verde

Los colores ya estan definidos dentro de la aplicacion; Rojo para el contorno y Verde para el relleno.
La aplicacion los define o el main, pero no por ello son constantes.

Bueno en conclusion yo personalmente utilizaria la segunda opcion, resuminedo lo haria por portabilidad, si el dia de mañana te piden un rectangulo de otro color y has utilizado constantes tendrias que modificar todas las veces la clase, mientras que si lo haces de la segunda forma, no tendras que modificar la clase.

Salu2 :)


En línea

Todos los caminos se vuelven a juntar. Pero nunca de la misma forma.
SLUGER

Desconectado Desconectado

Mensajes: 46


...


Ver Perfil WWW
Re: [DUDA]Propiedades o constantes
« Respuesta #2 en: 23 Mayo 2012, 03:39 am »

Ademas de que no eres la única persona que piensa de la misma manera, creo que tienes razón :) Aunque es un tanto ilógico estar creando getters y setters que por lo pronto no ( y creo que nunca ) utilizare >.<
En línea

KaL3o

Desconectado Desconectado

Mensajes: 60



Ver Perfil
Re: [DUDA]Propiedades o constantes
« Respuesta #3 en: 23 Mayo 2012, 04:00 am »

Bueno los getters y los setters es bueno ponerlos... claro para programas pequeños seguramente no le veras mucha utilidad.

Pero por ejemplo si te piden en medio del programa que cambies el color del contorno... ya se me diras que llamas al construcctor parametrizado nuevamente, pero ¿llamaras al constructor de toda una clase para modificar solamente uno de los datos del objeto? estaras accediendo a todos sus miembros para cambiar solo un dato, eso no tiene sentido.

Claro para tu programa seguramente no habra problema, no es un programa complejo, pero si el problema fuera de una complegidad alta o un software muy robusto, ufff andar llamando al constructor solo para modificar una pequeña variable seria una muy mala practica. (incluso en programas pequeños me parece mala practica deprogramación)
En línea

Todos los caminos se vuelven a juntar. Pero nunca de la misma forma.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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