Questo è dal <iostream>
:Come funziona extern in C++?
namespace std
{
extern istream cin; ///< Linked to standard input
extern ostream cout;
...
Sembra utilizzando extern
i tipi di dati definiti in altri spazi dei nomi sarà solo a disposizione?
Ma non trovo da nessuna parte che definisca 'cin', solo' istream' è definito in '' –
symfony
'cin' è un oggetto di tipo' istream'. 'istream' è la definizione della classe (in questo caso, template class). 'cin' è un'istanza della classe' istream'. La "definizione" a cui mi riferisco nella mia risposta è la definizione di 'cin', non di' istream'. È necessario cercare il significato di * definizione * rispetto a * declarazione *. Le dichiarazioni nei tuoi esempi sono * dichiarazioni *. –
La * definizione * della variabile 'cin' è molto probabile in una libreria run-time. Non lo troverai nei file di intestazione della libreria standard. –