Error de compilacion con GCC, libreria iostream

Iniciado por eternoneofito, 21 Agosto 2011, 08:56 AM

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

Alien-Z

#10
Cita de: eternoneofito en 22 Agosto 2011, 18:19 PM
Ok gracias a todos, estoy estudiando de un libro, pero no se hace mencion de la linea "using namespace std;" por eso no me di cuenta no es que estoy aprendiendo de la nada jajaj. En cuanto a lo de int main(), segun el libro es el que toma por defecto cuando se escribe main(), y es una cuestion de gusto personal escribir "int main()" o "main()", pero al parecer este libro es cualquier cosa jaja, ustedes lo sabran mejor que yo.
Voy a ver que hago entonces, si tiro el libro a la basura o que, gracias por su ayuda.

Aunque esté permitido, es buena costumbre evitar los "diminutivos" o las acortaciones, esto evita muchos errores a la hora de programar y fallos cuando se compila.

Acerca del libro, seguro que podrás aprender mucho de él, pero deberías tener a mano 2 o 3 más como referencia (online, no es necesario que los compres) para poder apoyarte y consultar dudas o corroborar explicaciones. Hay varios muy buenos en el primer link que te he dejado.

Saludos.

eternoneofito

Cita de: Alien-Z en 22 Agosto 2011, 18:23 PM
Aunque esté permitido, es buena costumbre evitar los "diminutivos" o las acortaciones, esto evita muchos errores a la hora de programar y fallos cuando se compila.

Acerca del libro, seguro que podrás aprender mucho de él, pero deberías tener a mano 2 o 3 más como referencia (online, no es necesario que los compres) para poder apoyarte y consultar dudas o corroborar explicaciones. Hay varios muy buenos en el primer link que te he dejado.

Saludos.

Ok, ahi mire los enlaces, me vienen muy bien. Voy a seguir las sugerencias, gracias.

rir3760

Cita de: eternoneofito en 22 Agosto 2011, 18:19 PMestoy estudiando de un libro, pero no se hace mencion de la linea "using namespace std;"
Eso indicaría un libro muy viejo, por ejemplo los enfocados en productos de Borland no mencionan esa sentencia ya que los compiladores obsoletos de esa compañia no la soportan.


Cita de: eternoneofito en 22 Agosto 2011, 18:19 PMEn cuanto a lo de int main(), segun el libro es el que toma por defecto cuando se escribe main(), y es una cuestion de gusto personal escribir "int main()" o "main()"
No. Solo en C estándar (ISO C90) se puede omitir el tipo y este se toma como "int". En el "nuevo" estándar de C (ISO-C99) y el de C++ no se puede ya que es un error.

Cursos y/o libros aceptables para aprender C++ se listan en uno de los temas fijos. Otros dos libros muy buenos (pero en ingles) son:
----
Accelerated C++: Practical Programming by Example
Andrew Koenig and Barbara E. Moo
Addison-Wesley, 2000
ISBN 0-201-70353-X
----
C++ Primer, 4th Edition
Stanley B. Lippman, Josée LaJoie, Barbara E. Moo
Addison-Wesley Professional, 2005
ISBN-10: 0-201-72148-1
ISBN-13: 978-0-201-72148-5
----

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

тαптяα

Cita de: eternoneofito en 22 Agosto 2011, 18:19 PM
Ok gracias a todos, estoy estudiando de un libro, pero no se hace mencion de la linea "using namespace std;" por eso no me di cuenta no es que estoy aprendiendo de la nada jajaj. En cuanto a lo de int main(), segun el libro es el que toma por defecto cuando se escribe main(), y es una cuestion de gusto personal escribir "int main()" o "main()", pero al parecer este libro es cualquier cosa jaja, ustedes lo sabran mejor que yo.
Voy a ver que hago entonces, si tiro el libro a la basura o que, gracias por su ayuda.
int main() y main() es exactamente la misma función retornan un valor entero.

Queta

#14
int main() y main() no es lo mismo, tal y como rir3760 dijo. Según el C99 (http://en.wikipedia.org/wiki/C99):

CitarThe function called at program startup is named main. The implementation declares no
prototype for this function. It shall be defined with a return type of int and with no
parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any names may be
used, as they are local to the function in which they are declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent;9) or in some other implementation-defined manner.

http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf

PD: aclaro que hablo de C.
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.

тαптяα

Gracias por la aclaración. Ahora ya lo sé que en C++ no es lo mismo.

SAludos

rir3760

En C++ es el mismo caso, una descripción en detalle se encuentra en la pagina Main function, C and C++ de Wikipedia.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language