[C++] [ESTRUCTURAS] Sistema de manejo de datos de clientes

Iniciado por DarkItachi, 27 Abril 2010, 22:40 PM

0 Miembros y 1 Visitante están viendo este tema.

DarkItachi

Undefined
Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.

.:BlackCoder:.

Hola... Weno yo soy un novato pero pes he leido que no se debe llamar tanto al sistema lo digo por el system cls... Y pes como es C++ que uses string en vez de char[]  :) aunque para mi pes es mejor utilizar dicha clase despues de saber sobre clases.

Saludos... espero haber sido constructivo  :xD
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




DarkItachi

Cita de: El_nuevo_HH en 28 Abril 2010, 00:54 AM
Hola... Weno yo soy un novato pero pes he leido que no se debe llamar tanto al sistema lo digo por el system cls... Y pes como es C++ que uses string en vez de char[]  :) aunque para mi pes es mejor utilizar dicha clase despues de saber sobre clases.

Saludos... espero haber sido constructivo  :xD


Bueno, respecto a lo de system("cls"); tienes razón, tengo que hacer una condición de preprocesador pero por lo de string siempre es mejor usar arrays de char ;)

Gracias por el consejo ;) Voy a añadir la condición de procesador.
Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.

Littlehorse

Quien te dijo que es mejor usar siempre arreglos de char que strings? es incorrecto, depende el caso y depende para que.
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

DarkItachi

Cita de: Littlehorse en 28 Abril 2010, 08:12 AM
Quien te dijo que es mejor usar siempre arreglos de char que strings? es incorrecto, depende el caso y depende para que.

Bueno, el tipo char es estándar, string no, supongo que para futuras plataformas simples y programación a nivel de sistema sería mejor usar arrays de char, no sé, eso pienso yo, quiza me equivoco :S
Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.

biribau


Littlehorse

Cita de: DarkItachi en 28 Abril 2010, 14:05 PM
Cita de: Littlehorse en 28 Abril 2010, 08:12 AM
Quien te dijo que es mejor usar siempre arreglos de char que strings? es incorrecto, depende el caso y depende para que.

Bueno, el tipo char es estándar, string no, supongo que para futuras plataformas simples y programación a nivel de sistema sería mejor usar arrays de char, no sé, eso pienso yo, quiza me equivoco :S

Si, te equivocas, mas considerando que que uno de los miembros de la clase string es c_str.
Los arreglos de char se usan por costumbre, por compatibilidad con las APIs, por ser lo unico que se sabe usar, y anda a saber por cuantos otros motivos. Eso no los hace mejor.

Si tenes ganas, lee esto

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

DarkItachi

Cita de: Littlehorse en 28 Abril 2010, 19:08 PM
Cita de: DarkItachi en 28 Abril 2010, 14:05 PM
Cita de: Littlehorse en 28 Abril 2010, 08:12 AM
Quien te dijo que es mejor usar siempre arreglos de char que strings? es incorrecto, depende el caso y depende para que.

Bueno, el tipo char es estándar, string no, supongo que para futuras plataformas simples y programación a nivel de sistema sería mejor usar arrays de char, no sé, eso pienso yo, quiza me equivoco :S

Si, te equivocas, mas considerando que que uno de los miembros de la clase string es c_str.
Los arreglos de char se usan por costumbre, por compatibilidad con las APIs, por ser lo unico que se sabe usar, y anda a saber por cuantos otros motivos. Eso no los hace mejor.

Si tenes ganas, lee esto

Saludos

Tienes razón, acabo de leer el documento y me sorprendí, string es más eficiente, fácil de leer y más rápido que las cadenas de char; pero nunca he usado string y me gustaría saber si a funciones como strcpy le puedo pasar strings (lo digo porqué el parámetro de entrada es const *char) , si gastan más memoria que las cadenas de char y si se puede acceder a cada carácter que la compone. Salu2
Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.

Littlehorse

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

biribau

Las string de C desde siempre fueron un punto flaco del lenguaje yo lo consideraría incluso error de diseño garrafal, no lo dije antes porque no encontré el link donde lo había leído, pero se puede razonar, son fuente de bugs explotables, y realmente ineficientes(sin posibilidad de evolucionar ni repararse dado que expone directamente el acceso a su representación interna, aunque esto tenia que ser así por la filosofía en sí del mismo lenguaje), realmente ineficientes me refiero a que concatenar y calcular la longitud son O(n) pudiendo ser en casi cualquier otra implementación O(1) esto es un orden de magnitud y son unas operaciones muy comunes, de hecho casi ningún lenguaje posterior siguió esta senda.
Hasta son poco flexibles y engorrosas.

Mira, y eso que dices de que pueden evolucionar no es verdad, piénsalo, no pueden evolucionar, jamás podrán ser buenas, porque si pudieran serlo ya se habría arreglado y créeme que muchos se han tirado y tiran de los pelos por ellas. Han costado mucho dinero ya.

Ahora bien, alguna ventaja tendrán, y encima es lo que el lenguaje da más facilidades para usar, siempre hay que partir de una no? porque no hay literales para objetos string.

Como ventajas te doy sencillez de uso, si no me equivoco hay mas operaciones estandar para trabajar con arrays de caracteres que con strings. Además los literales son arrays de char, y la entrada salida creo que tambien ergo siempre se parte de un array de chars.
Sencillez de implementacion, estructura interna sencilla de comprender
Cierto polimorfismo primitivo, las operaciones con arrays sirven para ellas, aunque esto solo vale para indexado y reasignacion, los arrays no tienen mas operaciones. Bueno y diferencia. Y memcpy, etc xD y algunas más
Son más eficientes con cadenas pequeñas que los string, que tienen más sobrecarga en las operaciones(debido a una estructura interna mas compleja)

Que rollo, en conclusión, para un ejercicio está de p**a madre como lo has hecho
, pero hay que tener todo eso en cuenta a veces

P.D.: Si alguien me recuerda el link donde decía el error de diseño de los strings C se lo agradecería  :)