怎么在网站做支付端口对接,逻辑网络设计的目标是什么?,网站seo方案建设目标,做前端网站用什么软件写代码吗一、命名空间的定义
定义命名空间#xff0c;使用namespace关键字#xff0c;后面跟命名空间的名字#xff0c;然后接一对花括号{ } 即可#xff0c;{ }中即为命名空间的成员。
1.一般定义
namespace test
{int a 10;int b 100;int ADD(int x, int y){return x y;}
}…一、命名空间的定义
定义命名空间使用namespace关键字后面跟命名空间的名字然后接一对花括号{ } 即可{ }中即为命名空间的成员。
1.一般定义
namespace test
{int a 10;int b 100;int ADD(int x, int y){return x y;}
}
2.嵌套定义
namespace test
{int a 10;int b 100;int Add(int x, int y){return x y;}namespace test2{int c(99);int d(9);//c可以使用括号来进行列表初始化int Sub(int x, int y){return x - y;}}
} 3.重名定义
同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
例如
namespace N1 //N1是命名空间的名称
{//用花括号{ }将命名空间的内容包起来//命名空间的内容即可以定义变量也可以定义函数int a;int Add(int x, int y){return x y;}
}namespace N1 //再次定义命名空间 N1
{int Mul(int x, int y){return x * y;}
}
实际上等同于
namespace N1 //N1是命名空间的名称
{//用花括号{ }将命名空间的内容包起来//命名空间的内容即可以定义变量也可以定义函数int a;int Add(int x, int y){return x y;}int Mul(int x, int y){return x * y;}
} 二、命名空间的使用
C为了防止命名冲突把自己库里面的东西都定义在一个std的命名空间中要使用标准库里面的东西有三种方式
加命名空间的名称及作用域限定符。使用using引入命名空间的成员。使用using namespace 命名空间名称引入将所有名称全展开。1.命名空间的名称及作用域限定符
代码如下
namespace test
{int a 10;int b 100;int Add(int x, int y){return x y;}namespace test2{int c(99);//c可以使用括号来进行初始化int d(9);int Sub(int x, int y){return x - y;}}
}
int main()
{std::cout test::Add(test::a, test::b) std::endl;std::cout test::test2::Sub(test::test2::c, test::test2::d) std::endl;return 0;
} 指定命名空间–麻烦每个地方都要指定但也是最规范的方式。 2.使用using namespace 命名空间全展开
代码如下
using namespace std; 把std整个展开相当于库里面的东西全部到全局域里面去了使用起来方便但是可能会有与自己命名空间定义的冲突规范工程中不推荐这种日常练习可以用这种。 3.使用using引入命名空间的成员
代码如下
using std::cout;
using std::endl;
int main()
{printf(%d\n, N::a);printf(%d\n, N::b);printf(%d\n, N::Add(1, 2));printf(%d\n, N::Sub(1, 2));int c 10;printf(%d\n, c); //局部变量优先所以c为10printf(%d\n, ::c); //指定访问左边域空白表示全局域
} 对部分常用的库里面的东西展开-针对1和2的折中方案项目中也经常使用。