käytännössä tuo 'uuden' headeirin iostream-käyttäminen tarkoittaa, että kaikki sen sisältö on nimiavaruudessa std. täten ohjelmaa pitää muuttaa jollain seuraavista tavoista (tai niiden yhdistelmällä):
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hello world!" << endl;
return 0;
}
tätä tapaa käytetään usein esimerkeissä ja se onkin 'helpoin' tapa, mutta samalla mukaan tuodaan koko nimiavaruus std, jota ei puolestaan pidetä kovin hyvänä käytäntönä.
#include <iostream>
using std::cout;
using std::endl;
int main(void)
{
cout << "Hello world!" << endl;
return 0;
}
yksittäisten komentojen tuominen on ihan hyvä tapa, mutta lista koodin alussa voi kasvaa hitusen pitkäksi ja syntaksi voi olla hieman hämäävää käytettäessä useita eri nimiavaruuksia.
#include <iostream>
int main(void)
{
std::cout << "Hello world!" << std::endl;
return 0;
}
nimiavaruuden eksplisiittinen kirjoittaminen joka komennon yhteydessä puolestaan vaatii hitusen lisää kirjoittamista ja kasvattaa aavistuksen koodin pituutta.
vaikka noista kaikista on hitusen ylimääräistä työtä ja vaikka vanhan c++-koodinkin saa halutessaan kääntymään, kannattaa 'uusi' tapa ehdottomasti opetella suoraan. nimiavaruudet ja uudet headerit ovat vaan oikeasti hyvä juttu.
tuo uusi on hipsuissa, koska oikeasti nuo ovat olleet käytettävissä helposti kymmenen vuotta, vaikka standardi onkin hitusen uudempi. jos lähde josta yrität opetella c++:aa käyttää vielä vanhoja headereita, on minusta syytä katsella jotain ihan muuta lähdettä opiskeluun. c++:aan on tullut uuden standardikirjaston myötä paljon uusia ja hyödyllisiä juttuja noihin vanhoihin verrattuna.
[edit]penteleen copy-paste
kiitokset mgronberille huomaamisesta. listaus korjattu.