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

发布时间:2026/8/28 5:12:50

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/8/26 16:19:23

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

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

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

2026/8/26 22:41:32

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

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

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

2026/8/24 15:05:59

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

Scratch游戏开发:从克隆体管理到碰撞检测的恐龙跑酷项目实战

Scratch游戏开发:从克隆体管理到碰撞检测的恐龙跑酷项目实战

2026/8/28 5:08:47

1. 项目概述与核心价值最近在整理历年蓝桥杯国赛的Scratch真题时,第十三届的“恐龙跑酷”项目让我印象特别深刻。这不仅仅是因为它模拟了当年风靡一时的跑酷游戏玩法,更重要的是,它几乎囊括了图形化编程中所有核心且高阶的考点。很多刚接触蓝…

基于GEE的遥感生态指数自动化计算:从多源数据融合到PCA智能判定

基于GEE的遥感生态指数自动化计算:从多源数据融合到PCA智能判定

2026/8/28 5:08:47

简介:遥感生态指数(RSEI)是评估区域生态环境质量的重要综合指标,它通过集成绿度、湿度、干度和热度等多个遥感参数,利用主成分分析(PCA)进行降维与综合。其核心原理在于将多维生态信息压缩到最能…

蓝桥杯分考场问题:图着色算法DFS回溯与剪枝优化实战

蓝桥杯分考场问题:图着色算法DFS回溯与剪枝优化实战

2026/8/28 5:08:47

1. 项目概述:从“分考场”到图着色问题的实战拆解最近在复盘蓝桥杯国赛的真题,看到“分考场”这个题目,很多刚接触算法竞赛的同学可能会觉得有点懵——这听起来像是个教务安排问题,跟编程算法有什么关系?实际上&#x…

一键暂停系统自动更新工具小到几乎不占空间

一键暂停系统自动更新工具小到几乎不占空间

2026/8/28 5:08:47

暂停更新至2999年 Windows自动更新这事儿,懂的都懂。你正赶工呢,它弹出来要重启;你打游戏到关键时刻,它后台偷偷下载把网速吃光;关机的时候它告诉你"请勿关闭计算机",一等就是半小时。很多人想关…

时间复杂度分析

时间复杂度分析

2026/8/28 5:08:47

1. 引言 递归算法的时间复杂度通常用递归式表示。本文介绍三种分析递归式的工具:递归树法、主定理与 Akra-Bazzi 定理,并通过实例帮助读者掌握递归复杂度的分析方法。 2. 时间复杂度基础 2.1 什么是时间复杂度 时间复杂度描述算法执行时间随输入规模增长的变化趋势,常用…

灰色关联分析:超越皮尔逊相关系数的趋势关联建模方法

灰色关联分析:超越皮尔逊相关系数的趋势关联建模方法

2026/8/28 4:58:47

1. 从“关系”说起:为什么建模时不能只看相关性?做数据分析或者数学建模的朋友,经常会遇到一个场景:手头有一堆指标,想找出哪个指标对最终结果的影响最大。比如,研究一个地区的经济发展,你可能有…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/27 7:25:23

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/26 17:50:58

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

基于Claude Code的开源AI求职框架:从职位搜索到Offer的全自动化闭环

2026/8/28 0:08:32

当AI助手能够独立完成从职位匹配、简历定制到面试准备的全链路求职流程时,求职不再是一场信息战,而是一场工程化战役。框架概述:本地运行的AI求职引擎这是一个构建在Claude Code之上的开源AI求职框架,核心理念是"在工作者的机…

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

Godot 4 仿 agar.io:相机缩放被 max_zoom 卡死,窗口越大球越小的根因与修复

2026/8/28 0:08:32

1. 问题现象 在 Godot 4 仿 agar.io 的 2D 项目中,相机缩放设计为「由球组整体尺寸决定」,世界可见高度恒定,窗口只作为视口裁剪。默认小窗口 1280x720 时相机高度正常;但窗口最大化到 2940x1912 后,视角被明显拉远、…

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

从软件测试大赛到实战:Java+Selenium自动化测试进阶指南

2026/8/28 0:08:32

1. 缘起:从校园到赛场,我的软件测试之路几年前,我还是一个在校园里对着Java课本和“Hello World”程序挠头的普通学生。软件测试对我来说,只是一个在开发流程末尾、用鼠标点点按钮的模糊概念。直到我偶然在学校的公告栏上看到了“…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/26 18:07:30

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/26 17:57:52

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…