#include // Todo lo que se defina dentro de ucr se debe acceder como ucr::algo namespace ucr { // una variable global dentro del espacio de nombres ucr double cout = 0.0; // Las clases y estructuras son otros espacios de nombres struct Impresora { static bool cout; }; bool Impresora::cout = false; } // namespace ucr // Una varable global accesible como ::cout desde cualquier contexto char cout = '\n'; int main() { // Una variable local tapa a la variable global homonima int cout = 0; cout = 1; std::cout << "cout = " << cout << std::endl; // Accede a la variable global, que se encuentra en el contexto global :: ::cout = 'z'; std::cout << "::cout = " << ::cout << std::endl; // Accede a una variable global dentro de un espacio de nombres llamado ucr ucr::cout = 3.14; std::cout << "ucr::cout = " << ucr::cout << std::endl; // Accede a un miembro de una clase o estructura que esta dentro de un namespace ucr::Impresora::cout = true; std::cout << "ucr::Impresora::cout = " << ucr::Impresora::cout << std::endl; // C++ sabe cual es el cout de la std, imprimir su tamanno en bytes std::cout << "sizeof(std::cout) = " << sizeof(std::cout) << std::endl; return 0; }