#include <stdio.h>
//命名空间
//一种作用域的划分,常用于区分项目中的模块或组件
//关键字namespace可分开使用
//名字空间可嵌套
//名字空间可起别名
namespace classA {
int i = 2;
}
namespace classA {//分开定义
int j = 3;
void max(void) {
printf("名字空间里面可以写函数");
}
}
namespace classB {//嵌套
int i = 2;
namespace classC {
int k = 3;
}
}
namespace BC = classB::classC;//取个别名
//名字空间使用
// 1.名字空间::内容
// 2.申明名字空间 using namespace classA
// 3.声明只使用命名空间的那部分变量或者函数
using classA::i;
int main(int argc, char* argv[]) {
printf("%d\n", classA::i);
printf("%d\n", classA::j);
printf("%d\n", classB::i);
printf("%d\n", classB::classC::k);
printf("%d\n", BC::k);
classA::max();
printf("%d\n", i);
return 0;
}
#include<iostream>
using namespace std;
namespace ns1 {
int fun1(int x, int y) {
return x + y;
}
int fun2(int x, int y) {
return x - y;
}
int fun3(int x, int y) {
return x * y;
}
int fun4(int x, int y) {
return x / y;
}
}
using ns1::fun1;
using ns1::fun2;
using namespace ns1;
int main(int argc, char* argv[]) {
cout << fun1(2, 3) << endl;
cout << fun2(2, 3) << endl;
cout << fun3(2, 3) << endl;
return 0;
}
#include<iostream>
using namespace std;
namespace ns1 {
int fun(int x, int y);
}
namespace ns2 {
int fun(int x, int y);
namespace ns3 {
int fun(int x, int y);
}
}
int ns1::fun(int x,int y) {
return x + y;
}
int ns2::fun(int x, int y) {
return x - y;
}
namespace A = ns2::ns3;
int A::fun(int x, int y) {
return x * y;
}
int main(int argc, char* argv[]) {
cout<<ns1::fun(1, 2)<<endl;
cout<<ns2::fun(2, 3)<<endl;
cout<<A::fun(3, 4)<<endl;
return 0;
}