c++初阶入门(命名空间,C++输⼊输出,缺省参数,函数重载)

发布时间:2026/7/23 4:28:51

c++初阶入门(命名空间,C++输⼊输出,缺省参数,函数重载)
C兼容C语⾔绝⼤多数的语法所以C语⾔实现的hello world依旧可以运⾏C中需要把定义⽂件 代码后缀改为.cppvs编译器看到是.cpp就会调⽤C编译器编译linux下要⽤g编译不再是gcc。当然C有⼀套⾃⼰的输⼊输出严格说C版本的hello world应该是这样写的。//C//#includeiostream////namespace 命名空间//using namespace std;////int main()//{// cout hello world! \n endl;// return 0;yi//}1.命名空间1.1 namespace的价值在C/C中变量、函数和后⾯要学到的类都是⼤量存在的这些变量、函数和类的名称将都存在于全 局作⽤域中可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化以避免命名 冲突或名字污染namespace关键字的出现就是针对这种问题的。 c语⾔项⽬类似下⾯程序这样的命名冲突是普遍存在的问题C引⼊namespace就是为了更好的解决这样的问题#includestdio.h#includestdlib.hint rand 100;int main(){//// 编译报错error C2365: “rand”: 重定义以前的定义是“函数printf(%d\n , rand);return 0;}1.2 namespace的定义定义命名空间需要使⽤到namespace关键字后⾯跟命名空间的名字然后接⼀对{}即可{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。2.namespace本质是定义出⼀个域这个域跟全局域各⾃独⽴不同的域可以定义同名变量所以下⾯的rand不在冲突了。3.C中域有函数局部域全局域命名空间域类域域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑所有有了域隔离名字冲突就解决了。局部域和全局域除了会影响 编译查找逻辑还会影响变量的⽣命周期命名空间域和类域不影响变量⽣命周期。4.namespace只能定义在全局当然他还可以嵌套定义。5.项⽬⼯程中多⽂件中定义的同名namespace会认为是⼀个namespace不会冲突。6.C标准库都放在⼀个叫std(standard)的命名空间中1.3 命名空间使用编译查找⼀个变量的声明/定义时默认只会在局部或者全局查找不会到命名空间⾥⾯去查找。所以下⾯程序会编译报错。所以我们要使⽤命名空间中定义的变量/函数有三种⽅式指定命名空间访问项⽬中推荐这种⽅式。using将命名空间中某个成员展开项⽬中经常访问的不存在冲突的成员推荐这种⽅式。展开命名空间中全部成员项⽬不推荐冲突⻛险很⼤⽇常⼩练习程序为了⽅便推荐使⽤。2. C输⼊输出iostream 是 Input Output Stream 的缩写是标准的输⼊、输出流库定义了标准的输⼊、输 出对象。std::cin 是 istream 类的对象它主要⾯向窄字符narrow characters (of type char)的标准输⼊流。std::cout 是 ostream 类的对象它主要⾯向窄字符的标准输出流。std::endl 是⼀个函数流插⼊输出时相当于插⼊⼀个换⾏字符加刷新缓冲区。是流插⼊运算符是流提取运算符。C语⾔还⽤这两个运算符做位运算左移/右移使⽤C输⼊输出更⽅便不需要像printf/scanf输⼊输出时那样需要⼿动指定格式C的输⼊输出可以⾃动识别变量类型(本质是通过函数重载实现的这个以后会讲到)其实最重要的是C的流能更好的⽀持⾃定义类型对象的输⼊输出。IO流涉及类和对象运算符重载、继承等很多⾯向对象的知识这些知识我们还没有讲解所以这 ⾥我们只能简单认识⼀下C IO流的⽤法后⾯我们会有专⻔的⼀个章节来细节IO流库。cout/cin/endl等都属于C标准库C标准库都放在⼀个叫std(standard)的命名空间中所以要 通过命名空间的使⽤⽅式去⽤他们。⼀般⽇常练习中我们可以using namespace std实际项⽬开发中不建议using namespace std。这⾥我们没有包含stdio.h也可以使⽤printf和scanf在包iostream间接包含了。vs系列 编译器是这样的其他编译器可能会报错。3. 缺省参数缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调⽤该函数时如果没有指定实参则采⽤该形参的缺省值否则使⽤指定的实参缺省参数分为全缺省和半缺省参数。有些地⽅把缺省参数也叫默认参数全缺省就是全部形参给缺省值半缺省就是部分形参给缺省值。C规定半缺省参数必须从右往左依次连续缺省不能间隔跳跃给缺省值。带缺省参数的函数调⽤C规定必须从左到右依次给实参不能跳跃给实参。函数声明和定义分离时缺省参数不能在函数声明和定义中同时出现规定必须函数声明给缺省值。4. 函数重载C⽀持在同⼀作⽤域中出现同名函数但是要求这些同名函数的形参不同可以是参数个数不同或者类型不同。这样C函数调⽤就表现出了多态⾏为使⽤更灵活。C语⾔是不⽀持同⼀作⽤域中出现同名函数的。

相关新闻

大模型微调技术:LoRA与DPO实战解析

大模型微调技术:LoRA与DPO实战解析

2026/7/22 19:56:09

1. 为什么大模型微调是AI开发的必经之路?预训练大语言模型(LLM)就像一位通晓百科全书的学者,但要让这位"通才"变成特定领域的"专家",微调技术就是关键转折点。2023年Meta的Llama 2技术报告显示&am…

API 中转站为什么能解决 ChatGPT API 国内接入卡顿?

API 中转站为什么能解决 ChatGPT API 国内接入卡顿?

2026/7/22 5:30:21

导读:✨ 你以为 ChatGPT API 调不通,是代码写错了;但在国内环境里,更多时候问题出在访问链路、账号限制、支付门槛和接口稳定性。一个 Demo 偶尔成功不难,难的是让它在真实业务里长期稳定响应。图示:直连失…

轻量级API测试工具Restfox:极简设计如何重塑接口调试体验

轻量级API测试工具Restfox:极简设计如何重塑接口调试体验

2026/7/22 2:44:18

1. 项目概述:为什么我们需要一个“轻量级”的API测试工具?如果你和我一样,常年泡在前后端联调、第三方接口对接或者微服务治理的“泥潭”里,那你一定对Postman、Apifox这类工具又爱又恨。爱的是它们功能强大,几乎成了行…

基于LLM的自然语言到结构化查询框架设计与实践

基于LLM的自然语言到结构化查询框架设计与实践

2026/7/23 4:20:11

这次我们来看一个专门解决自然语言访问领域特定元数据问题的框架项目。这个框架的核心价值在于提供了一套可复用的方法论,让开发者能够快速构建基于大语言模型的查询生成系统,将自然语言问题自动转换为结构化查询。对于需要处理复杂元数据查询的场景&…

111232323232

111232323232

2026/7/23 4:20:11

2222222

ChatGPT Work实战:AI驱动建站、邮件处理与文档自动化

ChatGPT Work实战:AI驱动建站、邮件处理与文档自动化

2026/7/23 4:20:11

在数字化转型浪潮中,企业日常运营对建站、邮件处理和文档管理的效率要求越来越高。传统方式下,这些任务往往需要多个独立工具和专业技能支持,开发周期长、维护成本高。近期,ChatGPT Work 功能的推出,通过 AI 驱动的一体…

影刀RPA 网页表格数据采集:解析HTML表格的正确方法

影刀RPA 网页表格数据采集:解析HTML表格的正确方法

2026/7/23 4:20:11

影刀RPA 网页表格数据采集:解析HTML表格的正确方法 作者:林焱 网页上的表格是结构化数据的重要载体——商品列表、财务报表、订单记录、成绩单。采集表格数据是RPA的高频需求。但很多新手只会逐个单元格获取文本,一个10行5列的表格要操作50次…

OpenClaw安装与模型加载问题解决方案

OpenClaw安装与模型加载问题解决方案

2026/7/23 4:20:11

1. OpenClaw安装后的基础检查清单完成OpenClaw的安装后,建议先执行以下基础检查,确保核心组件正常运行:# 检查Ollama服务状态 ollama serve ollama list# 验证OpenClaw模型发现功能 openclaw models list --provider ollama# 运行基础测试命令…

《干词》入选“2026鸿蒙创新精品啦”!

《干词》入选“2026鸿蒙创新精品啦”!

2026/7/23 4:10:11

背单词神器《干词》像素风✨准备:考研/四六级/雅思的快来干词背单词!🔥家人们谁懂啊!昨天团队还在埋头敲代码,突然收到了一封来自华为官方的邮件📩——《干词》竟然正式入选了“华为鸿蒙2026创新精品”&…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/23 3:40:08

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/21 9:56:14

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/23 1:54:13

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

企业级AI搜索落地选型实战手册(含LLM+RAG+Hybrid架构对比矩阵与ROI测算模板)

企业级AI搜索落地选型实战手册(含LLM+RAG+Hybrid架构对比矩阵与ROI测算模板)

2026/7/23 0:09:56

更多请点击: https://kaifayun.com 第一章:企业级AI搜索落地选型实战手册(含LLMRAGHybrid架构对比矩阵与ROI测算模板) 企业级AI搜索系统落地成败,核心在于技术选型与业务价值的精准对齐。盲目堆砌大模型能力或过度依赖…

TM4C129LNCZAD外设实战:LCD、比较器与PWM寄存器配置详解

TM4C129LNCZAD外设实战:LCD、比较器与PWM寄存器配置详解

2026/7/23 0:09:56

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于ARM Cortex-M内核的微控制器项目中,深入理解并熟练配置芯片的片上外设,是从“点亮LED”迈向“实现复杂系统功能”的关键一步。Tiva™ TM4C129LNCZAD作为TI公司Cortex-M4F家族中的高性能成员…

AtomCode `fmt_dur` 争议溯源:两个函数、三段演进、四个事实

AtomCode `fmt_dur` 争议溯源:两个函数、三段演进、四个事实

2026/7/23 0:09:56

一、快速声明与争议背景本文是对 AtomCode 终端 spinner 时长显示 fmt_dur 相关说法的事实性核验。2026 年 7 月 CSDN 上出现两篇互相矛盾的博文,近期又有 AI 在对话中输出格式描述 XhYm / YmZs / Zs。本文基于 AtomCode 仓库 main4677ddfa 及全分支 Git 历史给出可…