Programación General > C/C++

 Apuntar A Null Al Destruir

<< < (5/8) > >>

JuanK:

--- Cita de: "Diodo" --- No seria error de la libreria, pero si se diera el caso de que alguien hiciera eso, no estaria de mas que el programa pudiera continuar, hasta donde fuera posible y siempre que no produjera mas errores, y se mostrara una advertencia

Soy novato en esto de crear una libreria , asi que es posible que me este pasando en el nivel de intervencionismo  :P  o quizas quiera hacer una libreria para dummies
--- Fin de la cita ---
En mi opinión siempre que se hace un componente para uso de otra persona que no fue el que lo creo hay que asegurarse de controlar la mayor cantidad de situaciones posibles...

Un componente o libreria es un producto que pretende reducir (en la medida de lo posible) el esfuerzo para lograr una funcionalidad X y mejorar la productividad de los que hagan uso de el.

Si el producto no controla algo o falla en algunas situaciones imprevistas luego te van a decir: es que ese componente que hizo Diodo es muy inestable o esta mal hecho etc... o tarde 20 horas en encontrar un error porque el componente de Diodo no me informo que no le podía pasar nulos ... etc

Siempre se debe hacer un componente de tal modo que se evite en la medida de lo posible que el que lo vaya usar haga mal uso de el, de allí que es importantísimo que si alguien hace mal uso del componente este componente haga una retroalimentación al usuario explicando que fue lo que hizo mal o donde esta el origen del uso indebido, con esto facilita la labor de depuración de quien use el componente, es decir cumple con su funcionalidad de disminuir el esfuerzo.

JuanK:

--- Cita de: "Eternal Idol" --- ¿Que tal si yo hiciera esto?


--- Código: Text --- char jaja[] = &#34;hoooola&#34;;clase *z = (clase*)&jaja;addNode(z);  
--- Fin de la cita ---
 :scream:

Claro, eso se puede hacer si alguien quiere hacer un uso malintencionado o fuera de lo normal para lo cual se hizo la libreria, pero de todas formas, no por el hecho que se pueda entrar a la casa por la ventana se va a dejar la puerta sin seguro.

definitivamente cada vez me gusta mas C#  :wub:

en C# ese código no funcionaria pues el safe type evita ese tipo de cosas.

Incluso presumo que con c++ managed extensions tampoco pasaría nada que no se deseara.

JuanK:

--- Cita de: "Eternal Idol" --- Ah y la verdad que ese codigo sea o no valido en otros lenguajes es totalmente redundante en este subforo.
--- Fin de la cita ---
No para mí ;)

Eternal Idol:

--- Cita de: "JuanK" --- Claro, eso se puede hacer si alguien quiere hacer un uso malintencionado o fuera de lo normal para lo cual se hizo la libreria, pero de todas formas, no por el hecho que se pueda entrar a la casa por la ventana se va a dejar la puerta sin seguro.
--- Fin de la cita ---
Ese era un caso EXTREMO, mira el otro que es mucho mas probable que pase:
new
addNode
delete
enumNodes

Yo no hablo de no dar un mensaje mediante un codigo de retorno de error o incluso una excepcion si uno intenta agregar un elemento con valor 0 pero no tiene sentido pasarle un puntero nulo a una lista y es imposible prevenir el paso de un elemento erroneo. Es un error del programa y no de la libreria.

Y en el caso de una lista como ya dije antes no fallaria la libreria, componente o como lo quieras llamar sino el programa por hacer uso de un valor que el inserto en esa lista y que no es valido.

Ah y la verdad que ese codigo sea o no valido en otros lenguajes es totalmente redundante en este subforo.


--- Cita de: "Diodo" --- Entendido, gracias por la ayuda.
--- Fin de la cita ---
De nadas.

Eternal Idol:

--- Cita de: "JuanK" --- No para mí ;)
--- Fin de la cita ---
Este es el subforo de C/C++ pero viendo como permitis que hablen de cualquier otro lenguaje no me extraña que respondas esa idiotez. Es totalmente redundante que ese codigo no sea valido en Perl, en ADA o en lo que sea.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa