您的位置:首页 > 编程语言 > C语言/C++

C和C++的区别 01.namespace

2017-03-20 17:39 204 查看
传统的C将所有全局变量编译到一个命名空间,不允许重名。但是C++是为了应对大型的软件设计而生的,所以命名自然多了许多。

为此C++开发了一种语法,叫命名空间,可以类比成厂家,C++把自己官方定义的系统函数放在了std(standard)空间下,我们使用using namespace std;这句话,则表示我们使用的是系统的这个命名空间。

我们也可以自己定义命名空间,格式是namespace 名字{};

如果我们已经选择了A厂家,但是想用个别的B厂家的东西怎么办呢?可以用:: 域作用符,就是两个冒号。

#include <iostream>
#include <stdio.h>

using namespace std;
// 不加这句,则需使用 :: 域作用符 std::cout

//命名空间的定义
namespace NameSpaceA
{
int a = 0;
}

//嵌套定义
namespace NameSpaceB
{
int a = 1;
namespace NameSpaceC
{
struct Teacher
{
char name[10];
int age;
};
}
}

int main()
{
using namespace NameSpaceA;
using NameSpaceB::NameSpaceC::Teacher;   //使用命名空间里面的变量

printf("a = %d\n", a);              //是默认的空间    0
printf("a = %d\n", NameSpaceB::a);  //使用里面的定义    1

Teacher t1 = {"aaa", 3};

printf("t1.name = %s\n", t1.name);
printf("t1.age = %d\n", t1.age);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 namespace