nameSpace--CPP

332 阅读1分钟

命名空间

什么是命名空间呢,C++中会会定义很多变量,函数,对象等等,在一个大型项目或者团队协作的时候不可避免的产生命名冲突,那么我们把命名放在命名空间里边,然后在再用的时候再从命名空间里边用,就可以避免这种问题了。

如何定义命名空间

我们引入关键字namespace,后面写上你的命名空间的名字就行,再加上{}。 例如 你可以定义一个函数或者进行嵌套

namespace wzy { int name; int rand; int number; // absolutely you can define an funtion int sum(int a,int b) { return a + b; } //Absolutely you can nested namespace wzy2 { int c; int funtion; } }

需要注意的是,你可以命名相同名字的命名空间,不过不用担心,编译器会把他们合成在一起,而且一旦建立的命名空间,里边的变量函数等就被限制了,

如何使用命名空间

`#include<stdlib.h> int rand=0;

int main() { printf("%d\n", rand); }` 看到这里,

image.png rand产生的重定义,这是因为stdlib中的关键字和rand冲突了,这时

image.png rand被zzz限制了,所以先优先选用库函数里边的函数地址,需要注意的是,变量优先在局部里边去找,因为rand被限制了,所以去找库函数,就找不到了。 image.png 这里就可以用了,这个叫做直接加作用域限定符

image.png 这样可以单独展开 当然也可以全部展开

image.png 不过这样就失去了本身隔离的意义了,不建议使用

using namespace std;

#include<iostream> using namespace std; int main() { cout << "hello wolrd!" << endl; } 在这段代码中,iostream是头文件,就是输入输出的头文件,然后《表示让hello world 以流的形式到标准输出里边去 std:c++的库的实现定义在std的命名空间,以防止程序员自己定义的东西冲突 #include<iostream> //using namespace std; int main() { std::cout << "hello wolrd!" << std::endl; } 更建议这样写 #include<iostream> //using namespace std; using std::cout; using std::endl; int main() { cout << "hello wolrd!" << endl; }

cout

这个函数和printf差不多,但是不需要注意格式了,然后用<<||>>进行输入和输出