QT乱翻书-命名空间
1 #include <iostream> 2 3 using namespace std; 4 5 /* 6 ::作用域运算符 7 1、访问全局变量 ::a 8 2、命名空间 namespace 本质就是符号常量、变量、函数、结构、枚举 9 类和对象等等。命名空间只能定义在全局 10 3、命名空间可以嵌套 11 4、可以随时将新的成员加入命名空间 12 5、函数声明和实现分离 13 6、无名命名空间相当于static ,本源文件内使用 14 7、命名空间取别名 15 8、使用using申明命名空间中的某几个成员可用 16 9、声明整个命名空间可用 17 */ 18 int a = 10; 19 void test01() 20 { 21 int a = 20; 22 cout << "局部变量a = " << a << endl; 23 cout << "全局变量a = " << ::a << endl; 24 } 25 26 //创建命名空间 27 //命名空间只能定义在全局 28 namespace A 29 { 30 int data = 20; 31 namespace C 32 { 33 int data = 60; 34 } 35 36 } 37 namespace B 38 { 39 int data = 40; 40 } 41 42 namespace B 43 { 44 int date2 = 80; 45 } 46 47 namespace D 48 { 49 void fun01(); 50 void fun02(); 51 52 } 53 54 55 void D::fun01() 56 { 57 cout << "D::fun01" << endl; 58 } 59 60 void D::fun02() 61 { 62 cout << "D::fun02" << endl; 63 } 64 namespace 65 { 66 int num = 100; 67 } 68 69 namespace veryLongName 70 { 71 int va = 100; 72 int vb = 200; 73 } 74 75 namespace sn = veryLongName ; 76 77 void test02() 78 { 79 cout << "A::data=" << A::data << endl; 80 cout << "B::data=" << B::data << endl; 81 cout << "A::C::data=" << A::C::data << endl; 82 cout << "B::data2=" << B::date2 << endl; 83 D::fun01(); 84 D::fun02(); 85 cout << "::num=" << ::num << endl; 86 cout << "sn::va=" << sn::va << endl; 87 } 88 89 void test03() 90 { 91 cout << "A::data=" << A::data << endl; 92 cout << "B::data=" << B::data << endl; 93 // int data = 299; 94 using A::data; 95 cout << "using A::data = " << data; 96 } 97 98 using A::data; 99 void test04() 100 { 101 cout << "A::data=" << A::data << endl; 102 cout << "B::data=" << B::data << endl; 103 int data = 299; 104 cout << "int data = 299;" << data; 105 } 106 107 108 109 int main() 110 { 111 cout << "Hello World!" << endl; 112 test01(); 113 test02(); 114 test03(); 115 test04(); 116 return 0; 117 }