PDA

Ver la versión completa : una pregunta de c++ en linux



^K3``N30
12-03-2003, 07:02
He empezado a programar bajo linux y mi primer resultado es no poder utilizar la libreria iostream.h

al compilar me sale esto:
/usr/include/c++/3.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.

Si alguien me dice ke es lo que pasa se lo agradeceria. Sera alguna tonteria pero soy un novato en c++(lo que dio de si la asignatura de c++en fisica bajo windows) y en linux aun estoy mas crudo.

gOrr
12-03-2003, 09:52
Nasss
Eso es porque cambió la forma de añadir las librerias standar en el ANSI-C++. Ahora ya no hay que poner el .h, asi q en vez de #inclue<iostream.h> deberias poner: #include<iostream>.
Además ahora las clases y las funciones están sin el namespace std, asi que pa poder usarlo todo como antes deberías utilizar la directiva 'using'
Resumiendo, para que todo te funcione como antes, donde antes ponías:
#include <iostream.h>
Ahora deberías poner:
#include <iostream>
using namespace std;

ciaoo

^K3``N30
12-03-2003, 11:28
Gracias gOrr! Ahora lo probare a ver que tal. A todo esto... Me podriass explicar brevemente que es eso del namespace std.

|NaZgÛl|
12-03-2003, 12:31
Para que no haya conflictos entre las diferentes librerias.

Si tu creas una librería con una clase PEPE, por ejemplo, y resulta que en el g++ existe una clase que se llama igual, al compilar como sabe el compilador que clase estas referenciando tú?? Pues para esto se usa, si pones using namespace std buscará la clase en la librería del g++, y si pones using namespace NombreDeTuLibrería el compilador buscará la clase en tu librería.

^K3``N30
12-03-2003, 13:44
OK muchas gracias! Ya me ha quedado todo claro. Bueno de momento, seguro que dentro de poco me salen nuevas dudas jejejejej.