Witam
Mam problem ze zrozumieniem dyrektywy using w języku C++
namespace Jill
{
double fetch = 2;
}
using namespace Jill;
double fetch;
int main(void)
{
using namespace std;
//cout << Jill::fetch;
cout << ::fetch;
return 0;
}
Dlaczego kompilator nie generuje tutaj blędu? fetch z przestrzeni nazw jest importowane do przestrzeni globalnej nazw czyli wydaje mi sie ze to jest cos takiego jakby miał dwie takie same deklaracje, jedna pod drugą,czyli jest to błąd:
double fetch = 2;
double fetch;
W książce S.Prata "Język C++ Szkoła porgramowania" jest podana takie zdanie na temat dyrektywy using ktorego nie rozumiem, mogłby ktoś mi je objaśnić?
Oto zdanie:
"[...] w zastosowaniu dyrektywy using rozstrzyganie nazw odbywa się tak, jakby nazwy te zostały zadeklarowane w najmniejszym możliwym obszarze deklaracyjnym zawierającym zarówno przestrzeń nazw, jak i dyrektywę using."