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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 [3]
21  Sistemas Operativos / GNU/Linux / Re: ¿Qué instalar? en: 9 Julio 2010, 07:38 am
Una pregunta. Ya tengo Windows Vista instalado en una particion y Ubuntu instalado en otra, es posible crear una tercera y meterle ahi Debian?? Tengo suficiente disco duro como para aguantar las 3, quisiera saber si es posible :)
22  Programación / Programación C/C++ / Re: Punto y coma en: 9 Julio 2010, 07:13 am
cuando solo hay un punto y coma quiere decir sentencia vacia, o sea que literalmente ese punto y coma no hace nada

Supongo que es cuestion del estilo del codigo, lo hace para enfatizar - separar del resto del codigo los bucles terminados en punto y coma, seguramente como una forma de decir "Notese que este bucle no tiene ninguna otra sentencia asociada"
23  Programación / Programación C/C++ / Re: warning al pasar por referencia una variable local. en: 8 Julio 2010, 07:41 am
Te explico lo que entiendo


Veras, esta es la historia de tu variable local cuando devuelves su referencia...

1)Cuando llamas a la funcion, esta reserva espacio para la memoria de la funcion (crea un stack segun recuerdo)

2)Tu variable local obtiene una direccion dentro del stack. Imaginate q esta direccion es 0x45D (El numero hexadecimal 45D, equivalente a 1117)

3)Tu funcion retorna la referencia a esta variable, o sea la posicion de memorioa numero 0x45d o 1117

4)La funcion termina de ejecutarse y se libera la pila. Enfatizo que se LIBERA, o sea que cualquier programa puede usarla a su gusto, pero no se elimina!!!! O sea que hasta que algun otro programa o proceso no se le asigne el byte Numero 45d, tu referencia seguira funcionando bien hasta que el sistema operativo asigne esa area a algun otro proceso y entonces todo comenzara a fallar :/


Sobre el operador =, es algo tambien un poco complejo:

El operador *, toma como argumento una variable de tipo racional y devuelve una variable del tipo Racional, hasta ahi vas bien.

este valor devuelto es bastante especial, porque ya saliste de la funcion, asi que la pila es liberada, pero todavia queda un dato que no podemos perder, el valor devuelto que probablemente asignaremos a otra variable. Es especial porque si te das cuenta es un tipo valor que no es parte de tu main (algo en teoria imposible porque solo los punteros y las referencias deberian poder accederse fuera de la pila; pero de esto se encarga el mismo c++ - probablemente volviendolo internamente una referencia - asi q todavia esta bien)

Entonces, viene el operador =, que toma como argumento ese tipo valor tan especial devuelto por el operador *. Normalmente cuando una funcion pide un valor por referencia, pero tu le pasas uno por valor, el c++ se encarga de referenciarla.

El problema es ahora que al parecer el c++ no tiene la capacidad de encargarse de referenciar este tipo, (que ya internamente es una referencia :/) por lo que ese valor devuelto solo podra ser pasado por valor al operador =, causando un error!!


Para arreglar este problema se me ocurren 2 opciones:

1) Crea otra version del operador =, pero pide los argumentos por valor en caso de que la variable no se pueda pasar por referencia como es tu caso:
Código
  1. Racional operator=(Racional r)//notece sin ningun & involucrado...
  2. {
  3.            this->set_racional(r.num,r.den);
  4.            return *this;
  5. }
  6.  

2)Utiliza c# jajajajaj


Bueno si no entiendes algode lo q dije (probable porque soy malo explicando) entonces pregunta lo q no entiendas.

Si quieres averiguar por tu cuenta como funcionan las referencias y las pilas de llamada a funcion, cheka estos links del curso de c++ mas copleto q he visto hasta ahora en la web:

http://www.zator.com/Cpp/E4_2_3.htm
http://www.zator.com/Cpp/E1_3_2.htm



Bye
24  Programación / Programación General / Re: Paradigmas de programación en: 3 Julio 2010, 18:48 pm
La POO me ha quitado muchos dolores de cabeza:

-Puedo escribir codigo a prueba de tontos: Esta ventaja me lada el encapsulamiento porque me permite ocultar del usuario finl campos que no deberia tocar. haciendo de mis programas muy resistentes a los fallos. Por ejemplo, imaginate que tengo una estructura de datos para manejar las muchas colasde prioridad que tiene la sucursal de un banco. Asi tendria que hacerlo en c:
Código
  1. /*Primero tengo que crear una libreria que manipule colas especificamente para tipos de datos ficha_cliente*/
  2. #include "Cola.h"
  3. typedef struct
  4. {
  5.     Cola* Cola_VIP;
  6.     Cola* Cola_Platino;
  7.     Cola* Cola_TerceraEdad;
  8.     Cola* Cola_Otros;
  9.     Ficha_cliente* SiguienteEnCola;
  10. }ColaPrioridad;
  11.  
Luego defino unafuncion que por ejemplo dada la ficha del cliente, decida a que cola agragarlo, y otra que dadas las colas, decidir quien debera ser el siguiente en ser atendido, pero eso debo hacerlo manualmente cada vez que saco a un cliente de la cola, ademas si un mal programador hace mal uso de esta estructura, podria arruinar las colas, no liberar la memoria correctamente y un sin fin de otros errores.


En cambio si creo una clase que solo muestre al usuario de esta 2 metodos: Agregar_Cliente(FichaCliente* nuevo) y SiguienteCliente(); Este solo podra usar una de esas clases y no podra challarla ni intentarechar,me la culpaa mi por crear una mala libreria



25  Programación / .NET (C#, VB.NET, ASP) / Re: Visual Studio... en: 3 Julio 2010, 08:09 am
Muchisimas gracias, me sacaron muchas dudas y miedos de la cabeza   :D
26  Programación / .NET (C#, VB.NET, ASP) / Visual Studio... en: 3 Julio 2010, 06:54 am
Holas, bueno quisiera saber si alguien puede ayudarme con un problema, la cosa va asi:


He comenzado un pequeño negocio creando sistemas de información y administradores de bases de datos personalizados para pequeñas empresas; el asunto fue creciendo de manera rápida y ahora tenemos un proyecto para una empresa ya seria que nos pide un software para centralizar todos sus proyectos.

El asunto es que siempre he trabajado con mi visual studio 2008, y tengo q admitir q es pirateado jajaja :rolleyes: Como solo trabajaba con empresas pequenas que ni siquiera deben estar inscritas ni reciben control alguno de ningun lado, eso no era problema para mi. Pero ahora necesito saber si los ejecutables y librerias que genero con visual studio estan protegidas de alguna manera con copyright.

Y en caso de que si, que no le pueda vender a esa empresa el software generado y utilizando tecnologias de visual studio (.NET, c++/cli, crystal reports, ASP.NET, MFC)... tendria q comenzar a utilizar software libre para desarrollar mis proyectos, al menos hasta q me pueda costear un licencia de VS 2010

Unas preguntas sobre compiladores y tecnologias libres...

-Mas o menos q ventajas y desventajas tiene gcc sobre los compiladores de Visual?
-Sin windows forms ni ASP.NET, existe alguna otra libreria (libre) para crear interfaces con c#?? Y algun compilador para c# y .NET??


Espero q me puedan ayudar, estoy desesperado por algo de guia, no quiero problemas legales pero quiero q mi empresa pueda crecer...
27  Programación / Programación C/C++ / Re: Otra vez Dev-C++ en: 18 Junio 2010, 04:31 am
El dev-cpp tiene una opcion para eliminar los obj una vez termine de compilar el programa, no estoy seguro donde porque hace anos q ya no uso Dev, pero esta ahi  :¬¬

el .cp. probablemente sea el archivo de back up (ya sabes en caso de que se te muera la maquina y no llegues a guardar)
28  Programación / Programación C/C++ / Re: Ayuda (DEV C++) en: 4 Mayo 2010, 22:25 pm
usa la funcion fgets de stdio.h

algo asi como fgets(nombre[0], 49, stdin);


o el metodo cin.getline de la libreria iostream

cin.getline(nombre[0], 49);

Esa es la forma para obtener cadenas de caracteres de la entrada
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines