目录
2.2.3 使用using manespace命名空间名称引入
一、C++关键字
C++一共有63个关键字,在开始学习时不需要了解具体是什么意思,在以后的学习中会慢慢认识。
注:下面只是列举一下,过个眼缘。
(图片来源与网络)
二、命名空间
在语言的不断学习中,变量,函数等可能会大量存在,导致命名冲突。命名空间的作用就是对标识符的名称进行本地化,避免命名冲突和名字污染。
2.1 命名空间定义
定义命名空间,需要使用到namespace关键字,后面加上命名空间的名字,再加一对{ },{ }中即为命名空间的成员。
//ht 是命名空间的名字,可以自定义
//1.命名空间的定义
namespace ht
{
//命名空间中可以定义变量/函数/类型
int a = 10;
int Add(int x, int y)
{
return x + y;
}
}
//2.命名空间可以嵌套
namespace nxd1
{
int a = 5;
int Add(int x, int y)
{
return x + y;
}
namespace xc2
{
int b = 2;
int c = 3;
int Sub(int x, int y)
{
return x - y;
}
}
}
//3.同名的命名空间可以合并,例如在test.h和test.cpp文件中都存在ht命名空间,编译器会
//自动处理,合并成一个命名空间
namespace ht
{
int Sub(int x, int y)
{
return x - y;
}
}
注:一个命名空间就定义了一个作用域,命名空间中的所有内容都局限于该命名空间中。
2.2 命名空间的使用
::称为作用域解析运算符或域操作符,可以指定名称所在的命名空间。
1.当::a的左边什么都不加时,表示访问的是全局变量而不是局部变量。
2.当b::a的左边有东西,表示访问左边的命名空间中的a。
2.2.1 加命名空间名称及作用域限定符
#include<stdio.h>
namespace ht
{
//命名空间中可以定义变量/函数/类型
int a = 0;
int b = 1;
int Add(int x, int y)
{
return x + y;
}
}
int main()
{
int a = 5;
printf("%d\n", ht::a);
return 0;
}
上面的图中ht::a,表示访问ht变量中的a,而不是局部变量a。
2.2.2 使用using将命名空间中的某个成员引入
#include<stdio.h>
namespace ht
{
//命名空间中可以定义变量/函数/类型
int a = 0;
int b = 1;
int Add(int x, int y)
{
return x + y;
}
}
using ht::Add;
int main()
{
int c = 3;
int d = 5;
int e = Add(c, d);
printf("%d", e);
return 0;
}
2.2.3 使用using manespace命名空间名称引入
#include<stdio.h>
namespace ht
{
//命名空间中可以定义变量/函数/类型
int a = 0;
int b = 1;
int Add(int x, int y)
{
return x + y;
}
}
using namespace ht;
int main()
{
printf("%d\n", b);
return 0;
}
三、C++输入和输出
#include<iostream>
using namespace std;
int main()
{
int a = 0;
cin >> a;
cout << a << endl;
return 0;
}
3.1C++的输入和输出使用cout(标准输出对象(控制台)和cin(标准输入对象(键盘),且需要头文件<iostream>,还需要按照命名空间使用方法使用std。
3.2endl是换行符,与C语言的\n有相同作用。、
3.3<<是流插入运算符,>>是流提取运算符
3.4C++的输入与输出不需要考虑变量类型,C++会自动识别。