C++入门——命名空间

C++相比于C引入了对象和类等重要概念以及stl库函数,这一节我们暂时不讨论这些

首先我们先在控制台上打印个Hello Wrold 学习每个语言的必经之路

#include
using namespace std;
int main() 
{
	std::cout << "Hello World" << std::endl;
	return 0;
}

输入以上的代码就可以输出一个Hello World了

我们发现C++和C的区别上并不是很大,头文件,main函数还有return 0;其实C++是包含C的C的语法是可以在C++中运行的,接下来我们来分析一下以上代码的各个作用

一、首先是#include,这就是一个头文件,与C不同的是不用加.h了,这也是区分C和C++库的方法当然也存在这是以前的版本中所使用的,现在的编译器一般都不会使用了

iostream内部包括istream和osteam这两个基础的对象,他们共同管理一个公共的缓冲流,打印则是向缓冲流中输入并输入给控制台,我们从键盘输入时通过缓冲流给我们所开辟的空间赋值

cout表示向控制台输出 、cin则为输入,可以类比C语言中的printf和scanf  不过cin可以自动判断类型不用像scanf一样需要加入%d之类的

>>、<<表示流向

::作用域限定符 指定某空间的某个对象

二、using namespace std; 我们把这个叫做命名空间

为社么要引入命名空间这个概念呢?在C中我们取名字只能取一次比如:有一个函数叫add,那我就不能再起同样的名字了,这时C++则引入了命名空间,在我们所命名的空间内命名过的名字,在其他的命名空间同样也可以命名以及使用,但在使用时需要表面是哪个空间的

1.如何命名一个空间呢?

namespace +空间的命名 + { }   如下:

namespace N //如何创建命名空间    namespace +  空间名 + {}
{
	int a = 10;
    int b = 20;

	int add(int a , int b) 
	{
		return a + b;
	}

	namespace N2		//当然也可以嵌套
	{
		char a = 'c';
	}
}

2.我们如何使用这个空间内的东西呢? 有三种方法

第一种:使用using namespace 命名空间名称引入 using namespace + 空间名 使用方法如下

using namespace N; //全展开则可以使用空间内所有被定义的
using namespace std; 

int main() 
{
	
	cout << add(a,b) << endl;//用了N中所定义的a,b还有add函数
	return 0;
}

第二种:使用using将命名空间中成员引入   在接下来的所有程序中都可以使用被引用的成员           相比于第一种方法这种方法更加节省资源 只会展开空间中的个别成员

using std::endl;
using std::cout;
using N::N2::a;
using N::add;
int main() 
{
	
	cout << add(1,2) << endl;
	cout << a;
	return 0;
}

第三种:加命名空间名称及作用域限定符        命名空间名称+::+调用的对象  不过每次打命名空间很麻烦 练习时一般我们使用第一种

int main() 
{
	std::cout << N::add(1,2) << std::endl;
	std::cout << N::N2::a;
	return 0;
}

你可能感兴趣的:(C++,c++,开发语言)