c++入门之 命名空间与输入输出
1、命名空间
1.1使用命名空间的原因
先看一个例子:
#include <iostream>
int round = 0;
int main()
{
printf("%d", round);
return 0;
}
请问,这个程序能跑起来吗? 答案是否定的
原因是,当我们想创建一个全局变量 round 时, 该名与库函数中的 round 函数重名,这时就发生了命名冲突,导致程序无法编译运行
当然,当团队协同合作时, 不同程序员之间的变量名也可能会发生命名冲突,
由于自己也无法完全记住所有库函数的名字,命名冲突就是一个比较烦人的问题了
1.1.1总结:
命名空间可以用来避免命名冲突
2.命名空间的定义
2.1关键字 namespace
命名空间形如:关键字 加 空间名称 + { 主体 }
命名空间可以定义函数/变量/类型
namespace dfq
{
int round = 0;
}
命名空间可以嵌套
namespace dfq
{
struct birth
{
...
}
namespace lover
{
struct birth
{
...
}
}
}
一个命名空间就定义了一个作用域
在一个项目中,可以存在多个相同名称的命名空间,编译运行后,分散的变量/类型/函数,
共同局限在一个作用域里面
3.命名空间的使用
3.1加命名空间名称、作用域限定符
::作用域限定符,用来寻找指定作用域的变量等
3.2.1使用using namespace 命名空间名称 引入
3.2.2 局限性
该种方法使 a 成为了全局变量, 可以被使用
但是,成为全局变量之后可能会发生命名冲突,导致无法编译通过
#include <iostream>
namespace dfq
{
int round = 0;
}
using namespace dfq;
int main()
{
printf("%d", round);
return 0;
}
所以:平时练习可以使用这种方法, 大工程项目中一定要避免使用
3.3使用 using 将命名空间中的某个成员引入
2.输入与输出
目前学的较为简单,只需先记住用法
输入关键字 cin
输出关键字 cout
(1)std 指的是c++ 标准库的命名空间名称,,C++将标准库的定义实现都放到这个命名空间中
(2)使用cin 、 cout 需要 包含 <iostream> 头文件 并且按命名空间的使用方法使用 std
(3)cin 标准输出对象(控制台), cout 标准输入对象(键盘)
它们是全局的流对象,包含在头文件<iostream>中
(4)>> 叫作 流提取运算符 , << 叫作 流插入运算符
(5)endl 是特殊的 c++ 的换行符,
(6)c++的输入输出不需要手动控制格式,使用较为方便
(7)cin、cout还有更多复杂的用法,比如保留精度, 但是,因为 c++ 兼容大部分c 所以我们完全可以使用 scanf printf 来解决这个问题。 实在不行,我们再去学习就是
点赞加关注,让我们下期见!