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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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

Desconectado Desconectado

Mensajes: 46


...


Ver Perfil WWW
[DUDA]Responsabilidad de la clase o del programador.
« en: 4 Mayo 2010, 02:19 am »

Bueno, por ejemplo, tenemos la clase números  :P en donde solo queremos que se ingresen los números del 1-9 y no el 0.
Código
  1. class numeros
  2. {
  3. private:
  4. int numero;
  5. public:
  6. numeros(int numeros);
  7. };
  8.  

Ahora, es responsabilidad de la clase(el constructor que es el que inicializara la variable según el parámetro) verificar que no exista 0, o es responsabilidad del programador que utiliza la clase verificar si existe un 0 y luego si no existe pasarle como parámetro la variable.


En línea

.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: [DUDA]Responsabilidad de la clase o del programador.
« Respuesta #1 en: 4 Mayo 2010, 02:25 am »

Del constructor definitivamente... (es decir de quien hizo la clase)... Debe estar a prueba de fallos  :) Para que cuando otro programador la use no tenga problemas...
Saludos...


En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



SLUGER

Desconectado Desconectado

Mensajes: 46


...


Ver Perfil WWW
Re: [DUDA]Responsabilidad de la clase o del programador.
« Respuesta #2 en: 4 Mayo 2010, 02:32 am »

 :)
Gracias. El_nuevo_HH, Littlehorse.
« Última modificación: 4 Mayo 2010, 02:48 am por SLUGER » En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [DUDA]Responsabilidad de la clase o del programador.
« Respuesta #3 en: 4 Mayo 2010, 02:39 am »

En el constructor por supuesto. Ten en cuenta que chequear los parámetros en un método no difiere de hacerlo en cualquier otra función por lo tanto no tiene sentido no hacerlo. Sobretodo si los datos provienen de funciones externas o del propio usuario.

En cualquiera de los casos tienes que analizar el caso en particular ya que verificar los datos siempre es escribir mas código y (en algunos casos) perder un poco de rendimiento. Mas allá de eso es una buena practica hacerlo y logra que el programador pueda buscar y controlar los errores mucho mas fácilmente . Fallar antes que ocurra un desastre mayor siempre es bienvenido.

Saludos!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
biribau

Desconectado Desconectado

Mensajes: 181


Ver Perfil
Re: [DUDA]Responsabilidad de la clase o del programador.
« Respuesta #4 en: 4 Mayo 2010, 03:02 am »

Si puedes úsalo. Pero si estas reacio, yo te diría que como regla general si vas a usar ese módulo mucho, ponle la aserción en release. Pero si la vas a usar poco(con poca interdependencia) pónsela sólo en modo debug y estate pendiente. De todos modos siempre es decisión del programador, tú dices qué se le debe pasar a tu función, sólo que normalmente(en los ejercicios sencillos) el sistema de tipos es suficientemente expresivo.
Ejemplos: División por cero, integer overflow, buffer overflow(acceder a un elemento fuera del array no tiene porque resultar ilegal o dar error en C, sí en otros lenguajes)

Por cierto, eso en diseño por contratos se llama invariante de clase
En línea

SLUGER

Desconectado Desconectado

Mensajes: 46


...


Ver Perfil WWW
Re: [DUDA]Responsabilidad de la clase o del programador.
« Respuesta #5 en: 4 Mayo 2010, 03:40 am »

Se la dejare en "release", porque la verdad la clase esta muy propensa a que se ingresen otros datos no deseados, además de que evito crashes. Y como dice Littlehorse es una buena practica hacerlo y logra que el programador pueda buscar y controlar los errores mucho mas fácilmente.
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