-------siwuxie095
C++命名空间(namespace)
什么是命名空间:
简言之,就是为程序划片取名字
程序中的命名空间:
如:A 公司的程序库 与 B 公司的程序库(二者毫无联系),
都将卖给 C 公司
如果 C 软件公司购买了 A 公司和 B 公司的程序库,想使用
A 公司的变量 x 和 B 公司的函数 f1,怎么办?
〔 C 公司怎么办,A 公司和 B 公司如何写自己的代码,
所以 A 公司和 B 公司要使用命名空间 〕
(即
为什么要有命名空间)
解决方案:
使用命名空间
namespace
命名空间定义方法:
命名空间使用方法:
如:
#include<stdlib.h> #include <iostream> using namespace std; namespace A { int x = 1; void fun() { cout << "A" << endl; } } namespace B { int x = 2; void fun() { cout << "B" << endl; } void fun2() { cout << "2B" << endl; } } using namespace B; int main(void) { cout << A::x << endl; B::fun(); fun2(); system("pause"); return } //或者去掉 using namespace B; 与上面等价 //int main(void) //{ // cout << A::x << endl; // B::fun(); // B::fun2(); // system("pause"); // return 0; //} |
vs2013中:
或者:
//或者去掉 using namespace std; 与上面整体等价 #include #include <iostream> namespace A { int x = 1; void fun() { std::cout << "A" << std::endl; } } namespace B { int x = 2; void fun() { std::cout << "B" << std::endl; } void fun2() { std::cout << "2B" << std::endl; } } using namespace B; int main(void) { std::cout << A::x << std::endl; B::fun(); fun2(); system("pause"); return } |
vs2013中:
再如:
#include<stdlib.h> #include <iostream> using namespace std; namespace myNum //填写命名空间的关键字 { int x = 105; } int main() { // 使用bool类型定义isOdd,作为状态位 bool isFlag = false; if (myNum::x % 2 == 0) { //改变状态位的值,使其为false isFlag = false; } else { //改变状态位的值,使其为true isFlag = true; } // 判断状态位的值 if (isFlag) { // 如果状态位的值为true,则打印变量x是奇数 cout << myNum::x << "是奇数" << endl; } else { // 如果状态位的值为false,则打印变量x是偶数 cout << myNum::x << "是偶数" << endl; } system("pause"); return } |
vs2013中:
【made by siwuxie095】