关于c++的命名空间

目录

1.命名空间

[(1)hello world](#(1)hello world)

[(2)细讲hello world代码](#(2)细讲hello world代码)

(3)引用命名空间

(4)总结代码

2.自定义一个命名空间


1.命名空间

(1)hello world

cpp 复制代码
#include<iostream>
using namespace std;
int main(void)
{
   cout<<"hello world"<<endl;
   return 0;
}

(2)细讲hello world代码

  1. #inlcude<iostream>中iostream提供了一个叫命名空间的东西,标准的命名是:std
  2. using namespace std 叫引用命名空间
  3. cout就是黑屏幕相当于C语言中的printf,endl是换行符

(3)引用命名空间

  • 由于cout、endl包含在了std的标准命名空间中所以每次使用时可以直接引用,如:

std::cout<<"hello,world"<<std::endl;

  • 上一种方法实在太麻烦,每次都要引用。所以我们可以在main函数之前声明空间中的一个变量

using std::cout;

using std::endl;

  • 最后一种方法是直接在main函数之前使用命名空间:

using namespace std;

(4)总结代码

cpp 复制代码
#include<iostream> //iostream提供了一个叫命名空间的东西,标准的命名空间是:std
using namespace std;//命名空间

//方式二:
using std::cout;//声明空间中的一个变量
using std::endl;

//方式三:(最简便的方法)
using namespace std;

int main(void)
{
#if 0
	//方式一:
	std::cout << "hello world" << std::endl;  //cout就是黑屏幕  endl是换行符
#endif 

	cout << "hello world" << endl;

	int a = 0;
	cin >> a;//相当于C语言中的scanf输入函数
	cout << "a=" << a << endl;

	return 0;
}

2.自定义一个命名空间

cpp 复制代码
#include<iostream>
//定义一个普通的命名空间
namespace spaceA
{
   int g_a=10;
}
int main(void)
{
   return 0;
}

1.试着模仿标准命名空间的声明来使用三种方式在main函数中使用g_a这个变量

cpp 复制代码
#include<iostream>
using namespace std;
namespace spaceA
{
   int g_a=10;
}
//方法二:
using spaceA::g_a;

//方法三:
using namespace spaceA;
int main(void)
{
   //方法一:
   cout<<"g_a="<<spaceA::g_a<<endl;
 
   
   return 0;
}

2.升高难度:创建一个嵌套式的命名空间

cpp 复制代码
#include<iostream>
using namespace std;
namespace spaceA
{
	int a = 20;
	namespace spaceB
	{
		struct teacher
		{
			int id;
			char name[23];
		};
	}
}
int main(void)
{

	return 0;
}

3.试着再用三种方法来使用命名空间spaceB中的结构体teacher

cpp 复制代码
#include<iostream>
using namespace std;
namespace spaceA
{
	int a = 20;
	namespace spaceB
	{
		struct teacher
		{
			int id;
			char name[23];
		};
	}
}
//第二种方法:
//using spaceA::spaceB::teacher;

//第三种方法:
using namespace spaceA::spaceB;
int main(void)
{
	//第一种方式:
	//spaceA::spaceB::teacher t1;
	//t1.id = 20;

	//teacher t1;

	teacher t1;
	
	return 0;
}
相关推荐
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
weilx12342 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
Smileyqp沛沛2 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++
C语言小火车2 天前
C/C++ 为什么需要编译器?
开发语言·c++
旖旎夜光2 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark2 天前
大规模并行计算中的负载均衡算法研究4
算法
吞下星星的少年·-·2 天前
C++ 萌新语法入门篇
c++·算法比赛