【C++学习】:命名空间、输入输出和缺省参数全面解析

news2025/1/10 23:52:22
个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : C++入门到进阶
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • 一. 命名空间
    • 1.1 为什么需要命名空间?
    • 1.2 命名空间的定义
    • 1.3 命名空间特性
    • 1.4 命名空间的三种使用
  • 二. 输入输出
    • 2.1 输出
    • 2.2 输入
    • 2.3 补充
  • 三. 缺省参数
    • 3.1 缺省参数的概念
    • 3.2 全缺省参数
    • 3.3 半缺省参数
    • 3.4 补充细节点
  • 🌤️全篇总结

在这里插入图片描述

📑前言

本文将介绍C++中的命名空间、输入输出操作以及缺省参数的概念和使用方法。通过本文的学习,读者将了解到命名空间的定义、特性和使用方法,以及C++中的输入输出操作和缺省参数的概念及使用方式。

一. 命名空间

1.1 为什么需要命名空间?

在C/C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。因此,c++引入了命名空间,有效的解决这个问题。命名空间的作用是对标识符的名称进行本地化,避免命名的冲突。

1.2 命名空间的定义

语法:使用namespace关键字,后面跟命名空间的名字,然后接一对{},{}中即为命名空间的成员。

namespace yxx
{
	int a;
	int b;
	int Add(int x, int y)
	{
		return x + y;
	}
	namespace yx
	{
		int c;
		int d;
		int Sub(int a, int b)
		{
            return a - b;
    	}
	}
}
namespace yxx
{
    int num;
}

1.3 命名空间特性

  1. 命名空间中可以定义变量/函数/类型 。
  2. 命名空间可以嵌套 。
  3. 同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
  4. 一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。

1.4 命名空间的三种使用

  1. 加命名空间名称及作用域限定符

    int main()
    {
    	printf("%d\n", N::a);
    	return 0;
    }
    
  2. 使用using将命名空间中某个成员引入

    using N::b;
    int main()
    {
    	printf("%d\n", N::a);
    	printf("%d\n", b);
    	return 0;
    }
    
  3. 使用using namespace 命名空间名称 引入

    using namespce N;
    int main()
    {
    	printf("%d\n", N::a);
    	printf("%d\n", b);
    	Add(10, 20);
    	return 0;
    }
    

二. 输入输出

在C语言中我们使用的是printf和scanf来进行输入和输出的操作,c++又是怎么样的呢?

2.1 输出

include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{
	cout << "Hello world!!!" << endl;
	return 0;
}
  1. 使用cout标准输出对象(控制台)
  2. 使用endl来输出换行符

2.2 输入

  1. 使用cin对象从标准输入流(通常是键盘)读取数据。
  2. 是流提取运算符
#include <iostream>
using namespace std;
int main()
{
	int a;
	double b;
	char c;
// 可以自动识别变量的类型
	cin >> a;
	cin >> b >> c;
	cout << a <<" "<< b <<" "<< c << endl;
	return 0;
}

2.3 补充

  1. cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件以及按命名空间使用方法使用std
  2. cout和cin是全局的流对象
  3. C++的输入输出可以自动识别变量类型
  4. cout和cin分别是ostream和istream类型的对象(后续文章会讲解)

三. 缺省参数

3.1 缺省参数的概念

声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。

void Func(int a = 0)
{
    cout<<a<<endl;
}
int main()
{
    Func(); // 没有传参时,使用参数的默认值
    Func(10); // 传参时,使用指定的实参
    return 0;
}

3.2 全缺省参数

void Func(int a = 10, int b = 20, int c = 30)
{
    cout<<"a = "<<a<<endl;
    cout<<"b = "<<b<<endl;
    cout<<"c = "<<c<<endl;
}

3.3 半缺省参数

void Func(int a, int b = 10, int c = 20)
{
    cout<<"a = "<<a<<endl;
    cout<<"b = "<<b<<endl;
    cout<<"c = "<<c<<endl;
}

3.4 补充细节点

  1. 半缺省参数必须从右往左依次来给出,不能间隔着给

  2. 缺省参数不能在函数声明和定义中同时出现

    //a.h
    void Func(int a = 10);
    // a.cpp
    void Func(int a = 20)
    {}
    // 如果声明与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该
    用那个缺省值。
    
  3. 缺省值必须是常量或者全局变量

  4. C语言不支持(编译器不支持)

🌤️全篇总结

本文详细介绍了C++中命名空间的定义、特性和使用方法,包括命名空间的定义语法、特性和三种使用方式。此外,还介绍了C++中的输入输出操作,包括使用cout进行标准输出和使用cin进行标准输入。最后,文章还介绍了缺省参数的概念及全缺省参数和半缺省参数的使用方法,以及一些细节点的注意事项。通过本文的学习,读者可以更好地理解和应用C++中的命名空间、输入输出操作和缺省参数。

image-20231229145151002

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1350003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于JAVA的创意工坊双创管理系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 管理员端2.2 Web 端2.3 移动端 三、系统展示四、核心代码4.1 查询项目4.2 移动端新增团队4.3 查询讲座4.4 讲座收藏4.5 小程序登录 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的创意工坊双创管理…

「MySQL运维常见问题及解决方法」

「MySQL运维常见问题及解决方法」 一、查看MySQL数据库安装路径1.1、方式一 --SHOW VARIABLES LIKE basedir;1.2、方式二 --ps -ef | grep mysql 二、MySQL设置连接数与最大并发数2.1、永久生效--修改my.cnf文件2.2、临时生效--通过命令设置的全局变量 三、其他相关参数设置四、…

YOLOv5独家原创改进:提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好 | 2023.12.29收录

💡💡💡本文改进:一种新的Shape IoU方法,该方法可以通过关注边界框本身的形状和尺度来计算损失,解决边界盒的形状和规模等固有属性对边界盒回归的影响。 💡💡💡对小目标检测涨点明显,在VisDrone2019、PASCAL VOC均有涨点 收录 YOLOv5原创自研 https://blog.cs…

Linux+nginx-前端部署的详细步骤

直奔主题 学废以下内容&#xff0c;前端也可以自己做部署啦~ Linux&#xff1a;大多数服务器都是使用Linux作为操作系统&#xff1a;稳定、安全、开源。finalShell工具&#xff1a;finalShell是一个方便管理远程服务器的工具&#xff0c;提供了可视化的操作配置界面。在和远程…

调用api接口异常的原因及解决方法

在进行接口调用时&#xff0c;调用有时会遇到各种异常情况&#xff0c;接口解决例如连接超时、异常因及返回值错误等。调用的原这些异常情况可能会导致程序无法正常运行&#xff0c;接口解决因此需要及时解决。异常因及本文将介绍。 一、接口解决连接超时 连接超时是异常因及…

mybatis-flex笔记

MyBatis-Flex 的增删改功能 - MyBatis-Flex 官方网站https://mybatis-flex.com/zh/base/add-delete-update.html https://gitee.com/hntianshu/mybatis-flex-test.githttp://xn--ces6a538pmb2a 一 新增数据 不忽略 null 值。 就是允许有null 忽略null 就是不允许有null BaseM…

图像文件怎么才能转换为Excel

将图像文件转换为Excel需要通过OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;技术&#xff0c;先将图片中的文字识别出来&#xff0c;再将识别出的文字导入到Excel中。这可以使用一些在线或离线的OCR工具&#xff0c;例如ABBYY FineReade…

JAVA B/S架构智慧工地源码,PC后台管理端、APP移动端

智慧工地系统充分利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术&#xff0c;以PC端&#xff0c;移动端&#xff0c;设备端三位一体的管控方式为企业现场工程管理提供了先进的技术手段。让劳务、设备、物料、安全、环境、能源、资料、计划、质量、视频监控等…

【Linux操作系统】探秘Linux奥秘:Linux开发工具的解密与实战

&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《操作系统实验室》&#x1f516;诗赋清音&#xff1a;柳垂轻絮拂人衣&#xff0c;心随风舞梦飞。 山川湖海皆可涉&#xff0c;勇者征途逐星辉。 目录 &#x1fa90;1 初识Linux OS &…

ES6之Promise的链式调用

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

微信商户号证书和密钥设置详细教程

1.先进入微信商户平台扫码登录微信商户号 微信商户平台 2.进入账户中心-API安全 3.申请API证书 3.1申请证书时按指引下载这个工具&#xff0c;这个工具里面包含你的证书信息 3.2 按指引安装该证书&#xff0c;安装完成以后证书会下载到你电脑的本地文件目录 4. 设置APIV2密…

建立网络矩阵:选择迅腾文化提供定制集成化服务、专业团队支持与拓展销售渠道

建立网络矩阵&#xff1a;选择迅腾文化提供定制集成化服务、专业团队支持与拓展销售渠道 在当今高度互联的数字时代&#xff0c;网络矩阵已成为企业常态化运营工具。网络矩阵不仅仅是一个单一的网站&#xff0c;而是由多个相互关联的数字资产组成的整体结构&#xff0c;包括官…

能答出这些问题,你就学会了模拟电路

自古以来&#xff0c;模拟电路和数字电路是电子工程师的学习重点&#xff0c;尤其是模拟电路&#xff0c;随着时代高速发展&#xff0c;越来越多高速高频设备使用模拟电路&#xff0c;在这种趋势下&#xff0c;很多电子人纷纷学习模电&#xff0c;但如何知道自己已经学成&#…

linux sh 脚本文件换行错误

windows 写好的脚本到服务运行不起来&#xff0c;显示换行问题 因为 windwos 的换行和 linux 的换行风格不同 解决办法&#xff1a;在使用的文本编辑器中&#xff0c;修改格式为 unix 格式 以 notepad 为例&#xff0c;在编辑 -> 文档格式转换中设置格式为 Unix

优优嗨聚集团:冬季旅游市场,寒风中的暖流“

随着季节的轮换&#xff0c;冬季的寒风已经开始轻轻掠过大地。对于很多人来说&#xff0c;这可能是一个蛰伏的季节&#xff0c;但对于旅游市场来说&#xff0c;冬季却是一个充满潜力和机遇的季节。今天&#xff0c;我们就来探讨一下冬季旅游市场的发展趋势&#xff0c;以及如何…

使用Gitea搭建自己的git远程仓库

Gitea 为什么需要自建仓库 原因只有一个&#xff1a;折腾。其实国内的码云加上github已经足够用了。 官方原话 Gitea 的首要目标是创建一个极易安装&#xff0c;运行非常快速&#xff0c;安装和使用体验良好的自建 Git 服务。我们采用 Go 作为后端语言&#xff0c;这使我们…

VUE——IDEA 启动前端工程VS文件启动前端工程

IDEA 启动前端 目录 前言一、打开控制台二、输入npm install三、依赖下载完之后&#xff0c;输入npm run dev&#xff0c;运行前端项目1、IDEA启动前端工程2、文件目录启动前端工程 四、点击http://localhost:8080后续敬请期待 前言 启动已有的vue前端项目 一、打开控制台 选…

Nacos、OpenFeign、Ribbon、loadbalancer组件工作的原理

Nacos、OpenFeign、Ribbon、loadbalancer组件工作的原理 Nacos是什么&#xff0c;官网中有这么一段话 这一段话说的直白点就是Nacos是一个注册中心和配置中心&#xff01; 在Nacos中有客户端和服务端的这个概念 服务端需要单独部署&#xff0c;用来保存服务实例数据的 客户端…

yolov5简单手势识别

实验目的 实验要求只需要识别五个简单的手势即可&#xff0c;分别对应的一下五个动作 动作对应标签名点赞goodOKok单手比心love数字 5five数字8eight 使用yolov5实现目标检测功能&#xff0c;有一下几个主要步骤 环境配置&#xff08;包括conda、labelimg、yolov5的下载&am…

【解决|三方工具】导入 XChart 后提示丢失关于 TMPPro 工具引用

开发平台&#xff1a;Unity 2021 版本 插件版本&#xff1a;XChart 3.0&#xff1a;官方文档 - https://github.com/XCharts-Team/XCharts   问题描述 导入 XChart 插件至 Unity 中出现 目录&#xff1a;Component、Theme 等提示丢失 TMPPro&#xff08;TextMeshPro 工具&…