【C++初阶】C++入门(上)

[复制链接]
发表于 2026-2-25 02:19:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
【C++初阶】C++入门(上)

   🥕个人主页:开敲🍉
  🔥所属专栏:C++🥭
  
🌼文章目次🌼
0. 前言
1. C++关键字
2. C++输入输出
3. 定名空间
    3.1 定名空间的用法和界说
    3.2 定名空间利用
4. 缺省参数
    4.1 缺省参数的概念
    4.2 缺省参数的分类
5. 函数重载
    5.1 函数重载的概念

0. 前言

  C++是在C的根本之上,容纳进去了面向对象的编程头脑,并增长了许多有效的库以及编程范式
等。熟悉C语言之后,对C++学习有肯定的资助,本文紧张目的:

  ① 增补C语言语法的不敷,以及C++是怎样对C语言计划不公道的地方举行优化的,好比:作用
域方面、IO方面、函数方面、指针方面、宏方面等。

  ② 为后续学习类和对象打根本
1. C++关键字

  C++总计63个关键字,C语言32个关键字:

2. C++输入输出

  新生婴儿会以自己独特的方式向这个极新的天下打招呼,C++刚出来后,也算是一个新事物,那C++是否也应该向这个精致的天下来声问候呢?我们来看下C++是怎样来实现问候的。

  分析:
① 利用cout尺度输出对象(控制台)和cin尺度输入对象(键盘)时,必须包罗< iostream >头文件
以及按定名空间利用方法利用std。

② cout和cin是全局的流对象,endl是特别的C++符号,表现换行输出,他们都包罗在包罗<
iostream >头文件中。

③ << 是流插入运算符;>> 是流提取运算符。
④ 利用C++输入输出更方便,不须要像printf/scanf输入输出时那样,须要手动控制格式。
C++的输入输出可以主动辨认变量范例。

⑤ 实际上cout和cin分别是ostream和istream范例的对象,>>和<<也涉及运算符重载等知识,
这些知识我们我们后续才会学习,以是我们这里只是简单学习他们的利用。反面我们尚有有
一个章节更深入的学习IO流用法及原理。

  留意:早期尺度库将全部功能在全局域中实现,声明在.h后缀的头文件中,利用时只需包罗对应头文件即可,厥后将实在如今std定名空间下,为了和C头文件区分,也为了精确利用定名空间,规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此保举利用<iostream>+std的方式。
别的,这种输出情势还可以主动辨认变量的范例:

  std定名空间的利用惯例:
  std是C++尺度库的定名空间,怎样睁开std利用更公道呢?
① 在一样平常训练中,发起直接using namespace std即可,如许就很方便。
② using namespace std睁开,尺度库就全部袒暴露来了,如果我们界说跟库重名的范例/对
象/函数,就存在辩说标题。该标题在一样平常训练中很少出现,但是项目开辟中代码较多、规模
大,就很轻易出现。以是发起在项目开辟中利用,像std::cout如许利用时指定定名空间 +
using std::cout睁开常用的库对象/范例等方式。

3. 定名空间

  在我们实际的编程中,我们偶然会碰到界说的函数大概变量等的名字发生辩说,在已往学习C语言时碰到这类辩说我们每每只可以大概修改发生辩说的此中一个大概几个。而当我们学习了C++后,就可以很好地克制这类标题——定名空间。
    3.1 定名空间的用法和界说

来看下面一段代码:

可以看到,我们创建了一个rand地变量并想要打印rand的值,但是却堕落了,这是为什么呢?
这是由于,我们包罗了<stdlib.h>的头文件,而这个头文件中有一个名为rand的函数,正是由于这个函数和我们的变量名辩说了,因此发生了错误,当我们不包罗这个头文件时,就不会堕落:

但是我们总不能由于这个变量名辩说就不包罗这个头文件吧,但是我们又不想修改变量名,这就可以用到我们C++中的定名空间,界说定名空间,须要利用到namespace关键字,反面跟定名空间的名字,然后接一对{}即可{}中即为定名空间的成员:

但是这里又出现了一个新的标题,为什么打印出来的rand是个随机值呢?这就跟访问定名空间中的成员有关了。
    3.2 定名空间利用

  在我们须要访问某肯定名空间中的成员时,须要在前面加上定名空间名及作用域限定符 :: 如下:

如许就可以访问此中的成员了。
同时我们也可以在定名空间中界说函数:

利用时同样也依照上面的访问情势:

我们还可以在定名空间中界说布局体:

访问时我们就须要自己创建布局体变量,通过布局体变量访问数据:

  定名空间的利用统共有三种方法:
① 加定名空间名及作用域限定符:

② 利用using将整个定名空间引入:

  定名空间可以看作是一堵墙,当我们没有将整个定名空间引入时,我们只能爬上这堵墙去访问墙内里的成员;当我们将整个定名空间引入后,就相称于这堵墙被我们拆掉了,就不消再爬上这堵墙去访问墙内里的成员了。
③ 利用using将定名空间中的某个成员引入:

  将定名空间中的某个成员引入就相称于在定名空间这堵墙上开了专属于这个成员的洞,只有这个成员可以大概通过这个洞,未引入的成员则不可。
4. 缺省参数

    4.1 缺省参数的概念

  缺省参数是声明或界说函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实
参则接纳该形参的缺省值,否则利用指定的实参。

    4.2 缺省参数的分类

① 全缺省参数:

② 半缺省参数:

  留意:
    ① 利用半缺省参数时必须遵顼从左往右连续缺省,不能出现如下环境:


    ② 利用半缺省参数时,有多少个非缺省参数就要传多少个值:

    ③ 缺省值必须为常量大概全局变量
    ④ C语言不支持缺省参数
5. 函数重载

  天然语言中,一个词可以有多重寄义,人们可以通过上下文来判定该词真实的寄义,即该词被重
载了。好比:从前有一个笑话,国有两个体育项目各人根本不消看,也不消担心。一个是乒乓球,一个是男足。前者是“谁也赢不了!”,后者是“谁也赢不了!
    5.1 函数重载的概念

  函数重载:是函数的一种特别环境,C++答应在同一作用域中声明几个功能类似的同名函数,这
些同名函数的形参列表(参数个数 或 范例 或 范例次序)差别,常用来处理处罚实现功能类似数据范例
差别的标题。
  

  当我们不懂函数重载是什么的时间,光看上面的代码会以为非常谬妄,由于在我们之前学习C语言时,调用同一个函数时肯定是去到同一个函数当中运算,就像上面,都是调用Add函数,那么应当去到此中一个函数中完成两次的运算,但是很显然,上面的结果是两个差别的运算得出的结果。
  这就是函数重载,接下来先容三种函数重载的出现:
① 参数范例差别:

  如图,两个函数固然函数名雷同,都为Add,但是它们的参数范例不雷同。第一个Add的参数范例都是int;第二个Add的参数范例都是double,这就出现了函数重载。当你通报差别的范例的值时,它们会调用差别的函数。当传int范例的值时,它会调用第一个Add完成运算;当传double范例的值时,它会调用第二个Add举行运算。
  留意:这里固然两个Add函数返回的参数范例差别,但是这并不影响函数的重载,函数的重载跟返回值的范例没有任何关系。
② 参数个数差别:

  如图,两个函数固然函数名雷同,但是它们的参数个数差别。第一个Add有两个参数x和y;第二个Add有三个参数x、y和z,如许就出现了函数重载。当你通报差别个数的参数时,它们会调用差别的函数。当传2个参数时,它会调用第一个Add完成运算;当你通报三个参数时,它会调用第二个Add完成运算。
③ 范例次序差别:

  如图,两个函数固然函数名雷同,但是它们的范例次序差别。第一个Add的第一个参数是int范例,第二个参数是double范例;第二个Add的第一个参数是double范例,第二个参数是int范例,这就出现了函数重载。根据你通报参数的范例次序,它们会调用差别的函数。当你先传int范例的参数,后传double范例的参数时,它会调用第一个Add完成运算;当你先传double范例的参数,后传int范例的参数时,它会调用第二个Add完成运算。

                                                 创作不易,点个赞呗,蟹蟹啦~

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表