Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Tengo varias dudas....nuevo en C++

Estas en el tema de Tengo varias dudas....nuevo en C++ en el foro de C/C++ en Foros del Web. Hola, desde hace unos dias he estado siguiendo tutoriales sobre c++, yo vengo de Java y pues no se me ha hecho tan difícil el ...
  #1 (permalink)  
Antiguo 12/01/2012, 22:33
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Tengo varias dudas....nuevo en C++

Hola, desde hace unos dias he estado siguiendo tutoriales sobre c++, yo vengo de Java y pues no se me ha hecho tan difícil el c++, aun que si tiene varias cosas que sacan de onda, el asunto es que tengo unas dudas...

Existe una documentación de todas las clases que tiene C++?
Por ejemplo en Java existe la API que viene con las clases y que objetos se pueden usar y lo que hace cada uno, para gráficos, para la net, utilerias, para matemática, y cosas así.... supongo que si debe existir para c++, pero en las FAQ no estaba este recurso, me pueden proporcionar un link donde pueda encontrar esto... gracias..

Se puede hacer una GUI por si solo? es decir estuve leyendo y se puede hacer usando directX o GTK, pero si no uso eso no puedo hacer una GUI?? y en todo caso son paquetes que se descargan y se importan al proyecto con includes?

Al usar Try y Catch a los ejercicios que he realizado uno pone la palabra throw en un bloque que puede tener error, y uno pone el numero de error, pero tambien he visto que en el catch ponen esto: catch(...) que significan los puntos en el catch?

Se pueden usar 2 consolas a la vez? es decir que capture del teclado por una mientras la otra la uso solo para imprimir, es posible?

Cuantos compiladores diferentes existen? DevC++ es un compilador que tiene su IDE, o es solo un IDE? un codigo hecho en DevC++ si se hace tambien en Codeblocks, deben de funcionar igual? es decir no varian cosas de que aca esta clase se llama asi y aca lleva void y cosas asi?... es decir que tan brusco es el cambio por ejemplo de programar para linux, a programar aplicaciones para windows...

De antemano gracias por ayudarme a resolver estas dudas....dudas de novato pero es que aun no me queda claras ciertas cosas en c++

gracias!
  #2 (permalink)  
Antiguo 13/01/2012, 10:05
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Tengo varias dudas....nuevo en C++

Empezemos, esta pagina me parece muy completa: http://www.cplusplus.com/reference/

A que te refieres por usar una GUI por si sola. Tienes un monton de libreria para GUI. GTK,QT ,wxwidget , Windows Forms...etc. En C/C++ las librerias no se incluyen. Lo que se incluye son las cabeceras. Luego si o si tienes que enlazar con el compilador los fuentes pre compilados de las librerias.

Si te fijas con el throw puede devolver cualqueir tipo de objeto, no solo numeros.
con catch puede usar patter matching en el tipo de objeto. Y si pones los tres puntos quiere decir que va cualquier opcion.

Se pueden usar dos cosola pero eso depende fuertemente del sistema operativo.

Existen montones d e compiladores. Dev-c++ es una IDE que viene con el compilador mingw que es la version del GCC para windows.

Los compiladores mas conocidos dos:
GCC, borland , y el de microsoft.
  #3 (permalink)  
Antiguo 13/01/2012, 16:27
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Tengo varias dudas....nuevo en C++

Hola,

Cita:
Iniciado por zero0097 Ver Mensaje
Existe una documentación de todas las clases que tiene C++?
Adicionalmente, en opinión personal, la documentación de MSDN que viene con Microsoft Visual Studio Professional es una de las mejores fuentes de información sobre el lenguaje C/C++ explicado de una manera racional y profesional. Personalmente creo que lo puedes usar tanto como una referencia técnica como un tutorial de aprendizaje con ejemplos. Muy parecido a la API de Java.

Lógicamente es para el compilador de Microsoft, pero incluyendo que en MSDN viene documentadas las diferencias entre ANSI y el compilador de Microsoft, las diferencias entre los compiladores son vagamente de menos de 5%; así que si aprendes con el de Microsoft tendrás pocos problemas para ajustarte a otro en el futuro. El único inconveniente si no lo va a usar profesionalmente es el precio, creo que la documentación completa no viene en la versión Express.

Saludos,
  #4 (permalink)  
Antiguo 14/01/2012, 02:08
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Tengo varias dudas....nuevo en C++

Ok, gracias la referencia que me diste ya la habia visto pero no pense que esa fuera, no la vi muy organizada.

Y la que me dices Hackman la buscare haber si la puedo conseguir debajo del agua xD...


Pero entonces sobre los compiladores no me queda muy claro... actualmente yo parctico en Codeblock en ubuntu que segun esto usa el GNU GCC Compiler....ok!...
ahora tu sam me dices que el Dev C++ trae el mingw que es el GCC pero para windows... el cygwin es lo mismo no? una version del gcc para windows?

Ahora bien, supongamos que desarrollo una aplicacion en windows con el mingw y la construyo, ese ejecutable se puede ejecutar en cualquier computadora aunque no tenga el gcc instalado? osea tu dices ps es la version para windows... pero osea windows en si no tiene una version nativa de un compilador para c++?? claro que no sea el visual de microsoft?... usando el gcc en windows estaria construyendo aplicacion para windows? o para linux? no lo entiendo muy bien, disculpen pero todo lo que busco solo hablan del devc++ no profundizan mucho en el tema de verisones para un sistema y versiones para otro...

El gtk tambien funciona en windows? en teoria solo bajo el paquete gtk, importo los headers en mi codigo y empiezo a suar esas clases para ocnstruir una GUI vdd y la construyo y sea cual sea el compilador que use, esta correra tanto en linux como windows? o solo con el gcc es para correr en linux?

De antemano gracias y disculpen las preguntas de novato.
  #5 (permalink)  
Antiguo 14/01/2012, 14:23
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Tengo varias dudas....nuevo en C++

Hola,

Te adelanto algo sobre cygwin mientras sam90 posiblemente me corrija.

Cita:
Iniciado por zero0097 Ver Mensaje
... Y la que me dices Hackman la buscare haber si la puedo conseguir debajo del agua xD...
Creo que está en línea, por lo menos la mayoría:
http://msdn.microsoft.com/es-es/libr...=VS.90%29.aspx

Cita:
Iniciado por zero0097 Ver Mensaje
Pero entonces sobre los compiladores no me queda muy claro... actualmente yo parctico en Codeblock en ubuntu que segun esto usa el GNU GCC Compiler....ok!...
ahora tu sam me dices que el Dev C++ trae el mingw que es el GCC pero para windows... el cygwin es lo mismo no? una version del gcc para windows?
El compilador de Linux es GCC, mingw y cygwin son para Windows, es decir, son dos librerías hechas para crear y ejecutar programas hechos para Linux en Windows. Pero en todos los casos estás usando el mismo compilador GNU GCC.

Cita:
Iniciado por zero0097 Ver Mensaje
Ahora bien, supongamos que desarrollo una aplicacion en windows con el mingw y la construyo, ese ejecutable se puede ejecutar en cualquier computadora aunque no tenga el gcc instalado? osea tu dices ps es la version para windows... pero osea windows en si no tiene una version nativa de un compilador para c++?? claro que no sea el visual de microsoft?... usando el gcc en windows estaria construyendo aplicacion para windows? o para linux? no lo entiendo muy bien, disculpen pero todo lo que busco solo hablan del devc++ no profundizan mucho en el tema de verisones para un sistema y versiones para otro...
Si compilas un programa con las herramientas de cygwin solamente necesitas una librería DLL instalada en Windows (cygwin1.dll) para correr los programas, está es la que actúa como la API de Linux. Con mingw no estoy seguro. El compilador GNU GCC que trae cygwin te genera código objeto para Windows pero con algunas diferencias (por eso necesitas cygwin1.dll).

Por ejemplo, Unix usa 'signals' para administrar procesos, pero Windows no usa 'signals' así que si quieres que un programa escrito para Linux corra en Windows tendrías que reescribir toda la parte de los 'signals'; cygwin hace que no tengas que reescribir nada porque 'simula' los 'signals' en Windows.

En otras palabras, agarras un código fuente escrito para Linux, lo compilas con cygwin para Windows y mágicamente compila y corre correctamente; sin cygwin no podrías hacer eso en muchos casos.

Ahora la parte mas interesante es que con GCC puedes generar código objeto para Linux desde Windows y viceversa ... porque el compilador es el mismo y lo único que hace un compilador es convertir código fuente en código objeto en binario pero no lo ejecuta, aunque lógicamente requiere de una configuración e instalación diferente (por ejemplo si usa librerías .so ó .dll).

En mi opinión personal, si estas construyendo un programa en Linux usa GNU GCC desde el principio, si estas construyendo para Windows usa Microsoft Visual C/C++, cygwin y mingw para Windows son para cuando ya tienes el programa en Linux y no lo quieres volver a hacer para Windows.

La única ventaja adicional es que si haces el programa para Linux y usas cygwin corre en Linux y Windows (volviendo a compilar el programa para cada sistema), pero si lo haces para Windows tendrías que usar 'wine' u otros para ejecutarlo en Linux.

Cita:
Iniciado por zero0097 Ver Mensaje
...
El gtk tambien funciona en windows? en teoria solo bajo el paquete gtk, importo los headers en mi codigo y empiezo a suar esas clases para ocnstruir una GUI vdd y la construyo y sea cual sea el compilador que use, esta correra tanto en linux como windows? o solo con el gcc es para correr en linux?
...
Tienes que comprender que el código fuente es diferente al código objeto. GTK funciona en Windows y lo puedes usar en Microsoft Visual Studio, pero tienes que bajar la versión de GTK de desarrollo para Windows y compilar tu programa para Windows.

En Linux bajas las versión del GTK de desarrollo para Linux y compilas tu programa para Linux, en este caso usas el GNU GCC. Descargas las versiones de desarrollo porque ya vienen pre-compiladas para el sistema operativo que vas a usar.

http://www.ibiblio.org/apollo/WinGtkHowto.html

Saludos,
  #6 (permalink)  
Antiguo 14/01/2012, 16:08
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Tengo varias dudas....nuevo en C++

Muchísimas gracias Hackman, me esclaresiste ciertas lagunas...
Acorde a lo que me dices ya tengo claro lo que es mejor..

Si desarrollo para windows mejor estar en windows y usar Microsoft Visual Studio...

Si desarrollo para Linux usar cualquier IDE que use el GNU GCC Compiler, y puedo hacerlo aunque este en windows siempre y cuando tenga el MinGW o el Cywin instalado...

SI necesito programar para ambos puedo usar Cygwin y su dll para que funcione en ambos sistemas y el usuario final debera tener ese .dll para que le funcione el codigo que incialmente ha sido escrito para linux.

Ok?

Como comento yo estoy aprendiendo en Ubuntu, usando Codeblocks, y bueno quiero subir de nivel desarrollando una GUI, habiendo esclaresido las dudas, la hare para linux y usaré GTK....en el link que me pusiste leí sobre Glade y ya me lo descargue, que en teoria es como un visual para el GTK right?

Estoy en el camino de bajar GTKmm a lo que comprendo es lo que necesito para hacer una GUI en C++...

Gracias a los 2 mas o menos me cae el 20...solo para finalizar en c++ existe el multi-threading o aca es con procesos?
  #7 (permalink)  
Antiguo 14/01/2012, 18:00
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Tengo varias dudas....nuevo en C++

Hola,

Cita:
Iniciado por zero0097 Ver Mensaje
... SI necesito programar para ambos puedo usar Cygwin y su dll para que funcione en ambos sistemas y el usuario final debera tener ese .dll para que le funcione el codigo que incialmente ha sido escrito para linux.

Ok? ...
Exactamente, adicionalmente tienes que compilar tu programa dos veces, una para que corra en Linux y crear los instaladores para Linux y otra para Windows y crear instaladores para Windows adjuntando la librería de cygwin.

Cita:
Iniciado por zero0097 Ver Mensaje
... en el link que me pusiste leí sobre Glade y ya me lo descargue, que en teoria es como un visual para el GTK right? ...
Exacto pero no es el único y no estoy seguro que tan popular sea, busca opciones para crear visualmente con GTK.

Cita:
Iniciado por zero0097 Ver Mensaje
... solo para finalizar en c++ existe el multi-threading o aca es con procesos?
Técnicamente, según mi conocimiento, en Linux no existe el concepto de thread solo de process. Pero posiblemente con alguna librería adicional puedes obtener threads en Linux, un detalle es que no estoy muy actualizado con ese tema. Con kernels muy viejos estoy seguro que no existía ese concepto en Unix.


Te doy un ejemplo de mi método para trabajar con cygwin basado en mis cambios personalizados a Pidgin, escrito para Linux con GTK, que sería tu caso al terminar de hacer tu programa en Linux y compilarlo en Windows:
  • Instalé cygwin con el setup.exe y deje que terminara la instalación
  • Volví a ejecutar el instalador de cygwin e instale las herramientas de desarrollo, compiladores, make, autoconf, etc.
  • Ya tenía instalado NetBeans (versión full) y me detectó cygwin tool chain automáticamente.
  • Descargue el código fuente de Pidgin.
  • Como necesita un montón de librerías busque con el instalador de cygwin la mayoría de librerías ya compiladas en versión desarrollador, y las instaló automáticamente con sus headers y librerías.
  • Las librerías que no están en el instalador de cygwin las descargue de otro lado con su código fuente y las compile (make & make install) usando el cygwin bash shell. (Con cygwin puedes correr bash en una ventana, al estilo de la terminal de Linux)
  • Abrí el código fuente de Pidgin en NetBeans, le dí compilar y después de muchos intentos, y mucho tiempo de analizar el código, logré que compilara.
  • No era necesario NetBeans solamente facilita el trabajo igual que Codeblocks, con autoconf y make creo que era suficiente.

En Linux solamente necesitas Codeblocks e instalar con apt-get las herramientas de desarrollo, los compiladores, make, autoconf, etc., y con el mismo apt obtener GTK y todas las librerías necesarias. Por cierto ... como observaras solo escribo de cygwin ... no tengo mucha experiencia con mingw.

Saludos,

Última edición por HackmanC; 14/01/2012 a las 18:12 Razón: mingw

Etiquetas: clase, funcion, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:41.