KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
When I write following code it gets compiled and executed properly: #include <iostream> using namespace std; namespace first { int x = 5; int y = 10; } namespace second { double x = 3.1416; double y = 2.7183; } int main () { using namespace first; //using derective using second::y; cout << x << endl; cout << y << endl; return 0; } But if I write using directives outside main function as follows, using namespace first; //using derective using second::y; int main () { cout << x << endl; cout << y << endl; return 0; } It gives this compilation error: g++ namespace03.cpp -o namespace03 namespace03.cpp: In function ‘int main()’: namespace03.cpp:20:11: error: reference to ‘y’ is ambiguous namespace03.cpp:13:10: error: candidates are: double second::y namespace03.cpp:7:7: error: int first::y make: *** [namespace03] Error 1 Can anybody explain why using directive behaves differently when it is used inside main and outside main ?
Tags (comma-separated)
Save Edits
Cancel