c++入门之 命名空间与输入输出

devtools/2025/1/12 3:43:05/

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.ppmy.cn/devtools/149770.html

相关文章

Linux下常用的IO模型

Linux下常用的IO模型&#xff1a; 1. 阻塞IO fgets read getchar fread fgetc recv recvfrom 1. 让多个IO事件以同步方式处理&#xff0c; 2. 多个IO事件之间互相影响 3. CPU占有率低 2. 非阻塞IO 将IO对应的文件描述符设置成…

如何学习Vue设计模式

如何学习Vue设计模式 Vue 设计模式是 Vue.js 框架中用于解决常见问题的可复用解决方案。这些模式帮助开发者更有效地组织和管理代码&#xff0c;提升代码的可维护性、可扩展性和可读性。以下是一些常见的 Vue 设计模式&#xff1a; 1. 数据存储模式 可组合函数&#xff1a;用…

vue3使用vue3-video-play播放m3u8视频

1.安装vue3-video-play npm install vue3-video-play --save2.在组件中使用 import vue3-video-play/dist/style.css; import VideoPlay from vue3-video-play;// 视频配置项 const options reactive({src: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8, //视频源mute…

leetcode 面试经典 150 题:两数之和

链接两数之和题序号1题型数组解题方法1. 哈希表&#xff0c;2. 暴力法难度简单熟练度✅✅✅✅✅ 题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输…

用c实现C++类(八股)

在 C 语言中&#xff0c;虽然没有内建的面向对象编程&#xff08;OOP&#xff09;特性&#xff08;如封装、继承、多态&#xff09;&#xff0c;但通过一些编程技巧&#xff0c;我们仍然可以模拟实现这些概念。下面将用通俗易懂的方式&#xff0c;逐步介绍如何在 C 中实现封装、…

怎么把word试题转成excel?

在教育行业、学校管理以及在线学习平台中&#xff0c;试题库的高效管理是一项核心任务。许多教育工作者和系统开发人员常常面临将 Word 中的试题批量导入 Excel 的需求。本文将详细介绍如何快速将试题从 Word 转换为 Excel&#xff0c;帮助您轻松解决繁琐的数据整理问题&#x…

策略模式详解

策略模式&#xff08;Strategy Pattern&#xff09;是一种常用的行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;并将每个算法封装起来&#xff0c;使它们可以互换使用。策略模式让算法的变化独立于使用算法的客户。下面对策略模式进行详细讲解&#xff1a; 一、角色…

chrome浏览器的更新提示弹窗无法更新Chrome解决方法

使用组策略编辑器 此方法适用于 Windows 系统且系统为专业版及以上版本&#xff0c;家庭版系统没有组策略功能。 按下Win R键&#xff0c;打开 “运行” 对话框&#xff0c;输入gpedit.msc并回车&#xff0c;打开组策略编辑器。 在组策略编辑器中&#xff0c;依次展开 “计算机…