Quando usiamo lo spazio dei nomi std, perché scriviamo invece di ? Cosa succede se metto ?

Penso che non dovrei supporre nulla e mettere tutta la storia davanti a voi. Questo renderebbe più giustizia alla domanda.

#include → Questa linea di codice è una direttiva del preprocessore. Dice al programma di includere un pacchetto chiamato iostream. Alcuni blocchi aggiuntivi di codice vengono prima aggiunti al codice sorgente e poi il programma viene compilato. Questo codice aggiuntivo è presente nel file iostream che è già presente nel compilatore. Questo non fa alcuna differenza per il vostro codice sorgente e forma piuttosto un programma composito.

Questo solleva la domanda sul perché avete bisogno di aggiungere il contenuto di iostream al vostro codice sorgente. La risposta riguarda le varie funzioni che usate mentre scrivete il vostro codice. Funzioni come cout e cin. Questo codice aggiuntivo facilita l'uso di queste funzioni poiché ha il loro codice di definizione al suo interno. Così ora sapete abbastanza bene cosa fa la direttiva preprocessore. Pensatela come se il loro codice aggiuntivo vi fosse fornito per risparmiare la fatica di scrivere codice relativo all'interazione con l'hardware e dopo la complicazione questo codice sostituisce l'"include " nel vostro codice sorgente prima della compilazione.

Fondamentalmente la differenza tra iostream e iostream.h sta negli standard definiti per C++. ".h" era usato nell'era precedente allo sviluppo del C++. Mentre i nuovi standard non hanno ".h". Quindi ciò che questo fa è che non rimane più un file header poiché non c'è ".h". Questo è stato fatto per facilitare più di un tipo di pacchetti nel file header. È probabile che ci siano due o più pacchetti installati nel vostro sistema che contengono il codice di iostream. "std" in "using namespace std" è uno di questi. Quello che succede ora è che per completare l'aggiunta di questo pezzo di codice extra di iostream dovete aggiungere questa linea di codice extra che determina quale pacchetto deve essere usato. La direttiva "using" fa questo, cioè usare namespace std. namespace è il nome dato a piccoli pacchetti che diversi fornitori possono produrre per i loro programmi. Ci sono molti pacchetti come "std" disponibili. E quando non state usando pacchetti multipli allora potete semplicemente mettere la direttiva using all'inizio per specificare quale pacchetto/namespace userete in tutto il programma per evitare di digitare std:: prima di ogni linea di codice.

Quando usi più di un pacchetto hai bisogno di scrivere codice come questo →

std::cout("Questo è il pacchetto std.");

asd::pick("pick() è una funzione del pacchetto asd.