Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263

    [C++]Domanda sugli header

    dunque... durante un mio viaggio metafisico nel maledetto mondo dei linguaggi di programmazione mi sono imbattuto nel C++ e nonostante abbiano cercato di insegnarmelo all'università ne so proprio poco... ma soprattutto già nella fase "hello world" ho in contrato qualche problema... ovvero scrivendo questo pezzo di codice
    codice:
    #include <iostream> 
    
    main()
    {
      cout << "Hello, World!" << endl;
      return0;
    }
    e compilandolo su linux con g++ ottengo il seguente errore
    codice:
     
    main.cc: In function `int main()':
    main.cc:5: `cout' undeclared (first use this function)
    main.cc:5: (Each undeclared identifier is reported only once for each function 
       it appears in.)
    main.cc:5: `endl' undeclared (first use this function)
    d'accordo... allora provo a cambiare iostream in iostream.h e compila il programma però mi da questo warning
    codice:
    In file included from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/include/g++-v3/backward/iostream.h:31,
                     from main.cc:1:
    /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/include/g++-v3/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.
    detto questo ora ho due dubbi...

    1. in C++ gli non ho capito io o gli header non hanno l'estensione .h?!? e se così fosse... perchè devo mettercela per far funzionare il programma?!?

    2. cosa mi sta dicendo di preciso il warning di cui sopra?!?... o meglio... cosa mi dice l'ho capito ma come faccio a sbarazzarmene senza usare l'opzione -Wno-deprecated del compilatore?!?

  2. #2
    se includi la iostream

    allora dovrai usare

    using namespace std prima di int main ()

    se invece includi iostream.h

    non hai bisogno di richiamare lo standard bla bla bla...

  3. #3
    Utente di HTML.it L'avatar di toraz
    Registrato dal
    Nov 2001
    Messaggi
    263
    yeah!... grazie mille ora funziona tutto come si deve!

  4. #4
    Utente di HTML.it L'avatar di pixer
    Registrato dal
    Oct 2000
    Messaggi
    614
    iostream fa parte dei nuovi header C++. E i nuovi header C++ fanno uso della namespace std.
    MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
    .:[ It resumes the development !! ]:.


  5. #5
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Semplicemente se usi la nuova sintassi header, + consigliata e - obsoleta, come:
    codice:
    #include <iostream>
    Tutte le nuove classi, oggetti & co. vengono inserite nel namespace std.

    Questo programma è corretto:
    codice:
    #include <iostream>
    
    void main () {
    // notare std::
    std::cout << "Hello, world";
    }
    per evitare di rimettere sempre std:: puoi usare:
    codice:
    using namespace std;

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.