1: //namespace2.cpp 2: //Illustrates that using namespace directives for namespace that each contain 3: //a declaration of the same variable does not cause a problem unless that 4: //variable is actually used, but using namespace declarations of the same 5: //variable that occurs in two or more namespaces will not compile. 7: #include <iostream> 8: #include <iomanip> 9: using namespace std; 11: #include "utilities.h" 12: using Scobey::Pause; 14: namespace MyStuff 15: { 16: int n = 5; //This is MyStuff::n. 18: } 20: namespace YourStuff 21: { 22: int n = 10; //This is YourStuff::n. 23: } 25: int main() 26: { 27: int k = 20; 28: cout << "\nThe value of k is " << k << ".\n"; 29: Pause(0, "", 1); 31: //using namespace MyStuff; //1 32: //using namespace YourStuff; //2 33: //using MyStuff::n; //3 34: //using YourStuff::n; //4 36: //cout << "\nThe value of n is " << n << ".\n"; //5 37: //Pause(0, "", 2); //5 38: } 40: /* 41: Questions: 42: 1. What values or error are output if the program is run as is? 43: 2. What values or error are output if comments //1 and //2 are activated? 44: 3. What values or error are output if comments //1, //2, //5 are activated? 45: 4. What values or error are output if comments //3 and //4 are activated? 47: Answers: 48: 1. 20 49: 2. 20 50: 3. error C2872: 'n' : ambiguous symbol 51: 4. error C2874: using-declaration causes a multiple declaration of 52: 'YourStuff::n' 53: */