【C++】第一个程序namespace等解读

目录

一、第一个C++程序

二、命名空间

三、输入输出


一、第一个C++程序

#include <iostream>
using namespace std;

int main()
{
	cout << "hello world" << endl;

	return 0;
}

endl的作用和换行符是一样的

 

二、命名空间

关键字namespace:

定义方式:namespace (){}

使用这个命名空间中的成员:使用作用域限定符::

一个命名空间实际上就是一个域,可以在这个域中定义变量,函数等等。

命名空间的存在的意义:因为C语言中,多人协作开发时,难免会遇到不同开发者的命名方式相同,就会出现重定义的错误提示,这时问题就比较尴尬了,如果项目十分巨大,那么命名修改是十分消耗资源的。那么命名空间就是为了填补C语言的这个坑的。

不同的命名空间,作用域是不同的,两者之间是不会相互影响的,就如同全局定义了一个变量名,在局部中依然可以定义一个相同的变量名。命名空间也是一样的,两个不同的命名空间,可以定义相同标识符的变量或者函数。

 他们之间是不会相互影响的。


如果在多个文件中定义相同的命名空间


int a = 0;
int main()
{
	int a = 1;
	cout << a << endl;//这里是优先访问局部的,再访问全局的.打印 1
	cout << ::a << endl;//这里加了作用域限定符::,如果前面是空白的,默认是全局作用域,就会访问全局的, 打印 0

	return 0;
}

 


 再者我们再将命名空间用上:

namespace yx
{
	int a = 0;
}
int main()
{
	cout << ::a << endl;// 会保存,显示全局没有定义‘a'变量
	return 0;
}

 

 这时我们是将a定义再‘yx’这个命名空间中,即这个域中,全局是访问不了这个域中的数据的。所以找不到’a‘变量。


namespace yx
{
	int a = 0;
}
int main()
{
	cout << yx::a << endl;// 打印 0
	return 0;
}

这时使用了作用域限定符,就会在'yx'这个指定的作用域下面去寻找’a‘。

命名空间的使用方法:

1、加命名空间名称及作用域限定符

printf("%d\n", N::a)

2、使用using将命名空间成员引入

using N::b;

3、使用using namespace 命名空间名称 引入

using namespace N;

三、输入输出

C++中的输入输出是具有类型自动识别的。在C语言中,输出输入使用scanf,printf函数时,总是需要指定输入输出的格式,否则就会出现输入输出错误。C++中不会。

#include <iostream>
using namespace std;
int main()
{
	int a = 0;
	double b = 0;
		
	cin >> a >> b;
	cout << a << " " << b << endl;

	return 0;
}

 

C++中的输入cout,输出cin

cout:标准输出(控制台);cin:标准输入(键盘)。并且在使用时需要包含<iostream>和std命名空间,很容易可以直到,cout和cin是在std这个标准库命名空间中定义的。

我们可以这样使用:

#include <iostream>
using std::cout;
using std::cin;

int main()
{
	int a = 0;
	double b = 0;
		
	cin >> a >> b;
	cout << a << " " << b << std::endl;

	return 0;
}

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绅士·永

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值