当前位置: 首页 > article >正文

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 来解决这个问题。 实在不行,我们再去学习就是

                                            点赞加关注,让我们下期见!


http://www.kler.cn/a/488831.html

相关文章:

  • 第R4周:LSTM-火灾温度预测
  • Jenkins触发器--在其他项目执行后构建
  • 人工智能-数据分析及特征提取思路
  • 【文件I/O】文件持久化
  • <rust>在rust中,实现32位浮点数与16进制之间的转换
  • 代码随想录 哈希 test 8
  • 力扣-数组-121 买卖股票的最佳时机
  • qml SpringAnimation详解
  • 【AI-22】深度学习框架中的神经网络2
  • 关于Java代理模式的面试题目及其答案
  • C++语言的学习路线
  • Kafka的Partition故障恢复机制与HW一致性保障-Epoch更新机制详解
  • WebRtc05:设备管理
  • HOW - Form 表单确认校验两种模式(以 Modal 场景为例)
  • Eureka缓存机制
  • RabbitMQ 在 Go 中的核心方法详解
  • 【AIGC-ChatGPT进阶提示词指令】命运之轮:一个融合神秘与智慧的对话系统设计
  • 安科瑞Acrel-1000DP分布式光伏监控系统在浙江安吉成3234.465kWp分布式光伏发电项目中的应用
  • 在 Ubuntu 上对 Nginx 进行源码编译的详细指南
  • 代码随想录刷题day04|(数组篇)209.长度最小的子数组
  • PDF转文本以及转图片:itextpdf
  • 【EXCEL 向下合并制定列的空白内容】
  • C++例程:使用I/O模拟IIC接口(6)
  • Win10本地部署大语言模型ChatGLM2-6B
  • [豆包MarCode AI 刷题] 算法题解 Java 青训入营考核 五题打卡第三天
  • 网络安全:守护数字世界的防线