Eli mikä? "Kaikki elementit tai rakenneosat C++ kirjastossa ovat tässä merkkijonoluokassa jota kutsutaan nimellä önamespace ö "
Onko se jonkilainen systeemi(avaruus) jossa on kaikki mahdolliset C++ standardi kirjaston rakenneosat. Jolloin kääntäjä tunnistaa esim: olion "cout" nimen?
Suorana käännöksenä namespace on nimiavaruus. Se siis toimii näin:
#include <iostream>
namespace Jotain {
int muuttuja;
struct mun_tyyppi { int a, b, c; };
}
namespace Muita {
int muuttuja;
struct mun_tyyppi { int a, b, c, d, e, f; };
}
// Ja nyt on siis määritelty kahdet eri asiat, tässäkin siis kaksi eri muuttujaa:
Jotain::muuttuja = 1;
Muita::muuttuja = 2;
// cout (ja muut C++:n standardikirjaston asiat) kuuluvat std-nimiavaruuteen.
std::cout << (Jotain::muuttuja + Muita::muuttuja); // 1+2 = 3
// Muita::mun_tyyppi sisältää kuusi lukua ja Jotain::mun_tyyppi vain kolme, joten niiden kokojen suhde on luultavasti 6/3 = 2
std::cout << (sizeof(Muita::mun_tyyppi) / sizeof(Jotain::mun_tyyppi));
// Näin muuttuja tarkoittaa samaa kuin Jotain::muuttuja.
using Jotain::muuttuja;
std::cout << (muuttuja + Muita::muuttuja); // yhä 1+2 = 3.
// Tämän jälkeen kaikki Jotain-nimiavaruuden sisältö toimii ilman etuliitettä Jotain::
using namespace Jotain;
std::cout << (sizeof(Muita::mun_tyyppi) / sizeof(mun_tyyppi)); // 6/3 = 2.Aihe on jo aika vanha, joten et voi enää vastata siihen.