关于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;
}
相关推荐
郭涤生6 小时前
布隆过滤器
c++
喵了meme6 小时前
C语言实战4
c语言·开发语言
码界奇点6 小时前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
智者知已应修善业6 小时前
【求中位数】2024-1-23
c语言·c++·经验分享·笔记·算法
9ilk6 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
地平线开发者7 小时前
PTQ 量化数值范围与优化
算法·自动驾驶
sali-tec7 小时前
C# 基于halcon的视觉工作流-章68 深度学习-对象检测
开发语言·算法·计算机视觉·重构·c#
测试人社区-小明7 小时前
智能弹性伸缩算法在测试环境中的实践与验证
人工智能·测试工具·算法·机器学习·金融·机器人·量子计算
罗西的思考8 小时前
【Agent】MemOS 源码笔记---(5)---记忆分类
人工智能·深度学习·算法
生骨大头菜8 小时前
使用python实现相似图片搜索功能,并接入springcloud
开发语言·python·spring cloud·微服务