C++入门-->初探命名空间与IO流

前言:由于笔者c++功力还不深厚,所以在此只是浅谈一下c++中的namespace和基本的输入输出的使用.

C++命名空间的引入:在c语言阶段常被人垢病的就是在稍微大型一点儿的项目里,变量的名字是极难命名的,程序员之间也常为了取个不重复的变量名而绞尽脑汁。所以C++中引入了一个新的概念->namespace,即命名空间,它的出现有效的解决了命名冲突的问题,各个命名空间有着各自独立的作用域,每个namespace中的变量在不展开命名空间的情况下一般互不影响。

namespace的使用格式

/*namespace的使用语法格式
namespace _Name_Type_test1 /*命名空间的名字*/
{
    /*定义变量/对象/函数/类...*/
	int _a = 10;
    //
}

注意!可以建立多个命名空间,但是各个命名空间的名字不能相同。

调用namesapce中的成员:

​
namespace _Name_Type_test1
{
	int _a = 10;
}
namespace  _Name_Type_test2
{
	int _a = 10;
}
int main()
{
    /*调用命名空间的成员时,需要指定作用域,在对应命名空间名后加上::调用*/
	_Name_Type_test1::_a = 20;
	_Name_Type_test2::_a = 10;
	return 0;
}

​

可以自己测试一下,看看是什么现象?

通过调试我们可以发现,虽然变量名一样,但是不会冲突.

展开命名空间:

如果觉得指定作用域繁琐,也可以直接展开某个命名空间,展开后,其作用域中的成员可以直接使用,无需再指定作用域,当然如果展开后存在变量名冲突的问题时,还是要指定作用域来调用相应的成员

namespace _Name_Type_test1
{
	int _a = 10;
}
/*完全展开*/
using namespace _Name_Type_test1;

int main()
{
	_a = 20;
	return 0;
}

当然,命名空间之间也可以嵌套,例如:

namespace _Name_Type_test1
{
	int _a = 10;
	namespace  _Name_Type_test2
	{
		int _a = 10;
	}
}
int main()
{
	_Name_Type_test1::_a = 20;
	_Name_Type_test1::_Name_Type_test2::_a = 10;
	return 0;
}

C++的基本IO

C++中的输入输出一般是使用cin和cout来完成的,当然,在C++中也可以使用C语言中的输入scanf和输出printf。但是cin和cout在某些方面会更便捷。

1.cin和cout

关于它的重载和原理在此先不谈,先来看看他们的使用:

/*首先要想使用cin和cout,就要包含io流的头文件*/
#include<iostream>
/*cin和cout是被封装在std这个命名空间中的,要想使用有2中方式*/

//第一种:指定作用域使用

int main()
{
	int _a = 0;
	std::cin >> _a;
    std::cout<<_a<<std::endl;
	return 0;
}

//第二种:展开命名空间,但是这种方法只建议在学习阶段使用,具体原因先不谈

using namespace std;

int main()
{
	int _a = 0;
	cin >> _a;
    cout<<_a<<endl;
	return 0;
}

练习:使用cout打印 hello C++

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值