C++ 关于namespace
来源:互联网 发布:linux 卸载jdk1.7 编辑:程序博客网 时间:2024/06/06 18:42
#include "stdafx.h"
#include<iostream>
#include"string"
using namespace std;
int test()
{
cout << "namaspace test" << endl;
}
//定义命名空间
namespace NameSpaceA
{
int a = 10;//定义了一个命名空间,有一个变量a,赋值为10
}
namespace NameSpaceB
{
int a = 20;//定义了一个不同的命名空间,也有一个变量a,赋值为20
}
//因为两个命名空间不一样所以就算空间中定义的标识符一样也没有关系
namespace NameSpaceC
{
namespace NameSpaceD
{
class Teacher
{
public:
int age;
string name;//因为用到了string所以要加头文件
};
}//命名空间可以嵌套,不光可以定义变量,也可以定义类和结构体
}
void main()
{
using namespace NameSpaceA;//使用NameSpaceA //输出的a 为10 //同理使用NameSpaceB 输出的a 为20
using namespace NameSpaceB;//但是同时都使用时a就回报错,因为不知道是A的a还是B的a,所以有必要时还需要用显式
cout << NameSpaceB::a << endl;
//隐式
using namespace NameSpaceC::NameSpaceD;//注意因为D是嵌套在C里面的所以直接using D是出不来的
Teacher t1;//因为teacher是D里面定义好的类所以可以直接创建对象
t1.name = "张三";
cout << t1.name << endl;
//显式
NameSpaceC::NameSpaceD::Teacher t2;//显式使用命名空间创建对象
t2.name = "李四";
cout << t2.name << endl;
#include<iostream>
#include"string"
using namespace std;
int test()
{
cout << "namaspace test" << endl;
std::cout << "namaspace test" << std::endl;//如果不写需要显式的写出类的关系
return 0;}
//定义命名空间
namespace NameSpaceA
{
int a = 10;//定义了一个命名空间,有一个变量a,赋值为10
}
namespace NameSpaceB
{
int a = 20;//定义了一个不同的命名空间,也有一个变量a,赋值为20
}
//因为两个命名空间不一样所以就算空间中定义的标识符一样也没有关系
namespace NameSpaceC
{
namespace NameSpaceD
{
class Teacher
{
public:
int age;
string name;//因为用到了string所以要加头文件
};
}//命名空间可以嵌套,不光可以定义变量,也可以定义类和结构体
}
void main()
{
using namespace NameSpaceA;//使用NameSpaceA //输出的a 为10 //同理使用NameSpaceB 输出的a 为20
using namespace NameSpaceB;//但是同时都使用时a就回报错,因为不知道是A的a还是B的a,所以有必要时还需要用显式
cout << NameSpaceB::a << endl;
//隐式
using namespace NameSpaceC::NameSpaceD;//注意因为D是嵌套在C里面的所以直接using D是出不来的
Teacher t1;//因为teacher是D里面定义好的类所以可以直接创建对象
t1.name = "张三";
cout << t1.name << endl;
//显式
NameSpaceC::NameSpaceD::Teacher t2;//显式使用命名空间创建对象
t2.name = "李四";
cout << t2.name << endl;
}
//总结:
(1)当使用<iostream>的时候,改头文件没有定义全局的命名空间,必须使用namespace std 这样才能使用cout。若不引入using namespace std, 需要std::cout。
(2)C++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀 .h 。(因为iostream.h是老版本,速度慢)
(3)C++命名空间的定义:namespace name{.....}
(4)using namespace NameSpaceA(命名空间的使用)
(5)namespace 定义可以嵌套
0 0
- 【Visual C++】关于namespace
- 关于namespace
- 关于namespace
- c#namespace
- C++::namespace
- c-namespace
- C++namespace
- C++namespace
- [c++]关于template和namespace的关联名字查找ADL
- 关于名字空间namespace
- 关于namespace问题
- 对话整理:关于namespace!
- 对话整理:关于namespace!
- 关于 extjs 的 namespace
- 关于 using namespace std
- 关于“using namespace std”
- 关于“using namespace std
- 关于“using namespace std”
- 蓝桥杯——趣味素数问题(2017.2.3)
- Python学习笔记05_函数
- Android模拟登陆学信网获取四六级成绩
- 一起学WEB(六) 打扮你的网页(一)
- LeetCode 102. Binary Tree Level Order Traversal
- C++ 关于namespace
- parser.parse is not a function——arcgis api报错解决办法
- 结构体类型作为函数参数
- SQL Server中获取第一天和最后一天
- 拆分多个字符串放入对应的容器程序代码
- cn.bing.com
- 网络爬虫:Requests+lxml
- 什么是脏读,不可重复读,幻读
- 启动redis出现Creating Server TCP listening socket *:6379: bind: No such file or directory