Originariamente inviato da Akira86
Ciao...

Ho trovato diversi sorgenti di programmi che usavano i namespace e allora mi sono documentato per impararli...

Però non ho capito una cosa in questo esempio:

codice:
#include <iostream>

using namespace std;
Viene inclusa la libreria di I/O (iostream) con la quale si ha la possibilità di usare cin, cout, endl, ecc... e allora perchè e stata messa anche la 'direttiva d'uso' namespace sdt?
Si poteva fare a meno di metterla? e cosa cambia?
Puoi evitare di mettere "using namespace std;", ma in quel caso ogni volta che richiami le funzioni cin e cout (e anche le altre funzioni definite nel namespace std, tipo la funzione flush o endl) devi far seguire il nome della funzione da "std::"... Esempio:
std::cout << "x" << std::endl << "y" << std::flush;

Poi un altro dubbio, perche non hanno messo <iostream.h>? so che per certi compilatori e indiferente metterci .h però di solito ce la mettono tutti..

Grazie a chi mi risponde...
iostream.h è la vecchia libreria per l'i/o... Qualche hanno fa è stata riscritta completamente e l'hanno chiamata iostream (senza .h)...
Non noterai nessuna differenza (apparte la necessita' di dover usare il namespace std), perchè hanno lasciato quasi tutte le funzioni, ma ne hanno migliorato il codice...