C++入门-1

本文介绍了C++中的命名空间,详细解释了如何解决命名冲突,以及命名空间的访问方式。此外,还讨论了C++的输入输出操作,缺省参数的使用规则,特别是全缺省参数和半缺省参数的区别,以及函数重载的概念。通过这些内容,帮助读者更好地理解和掌握C++语言的关键特性。
摘要由CSDN通过智能技术生成

目录:

1. C++关键字

2. 命名空间 

        2.1 命名冲突

        2.2 命名空间 

        2.3 命名空间的访问

3. C++输入&输出

4. 缺省参数

        4.1 全缺省参数

        4.2 半缺省参数

 5. 函数重载

 6.总结

前言:

C++这门语言,是为了弥补C语言的缺陷而诞生的,对C语言当中的不足进行改善,以方便使用。网传C++很难,那么C++到底难不难?很难。没错,很难。在学习C++过程中,一定要沉得住心,学习的道路十分坎坷,但是一定要坚持走下去,相信自己,一定可以学好。在此,记录学习C++的点点滴滴。

1. C++关键字

C++关键字一共63个,其中包括C语言的32个,一半一半

2. 命名空间 

2.1 命名冲突

举例理解:我和瑶瑶在同一个工作室学习编程,我们被分配要完成同一个项目的不同模块。我定义了一个名叫TiMi的函数,很巧,瑶瑶定义了一个名叫TiMi的变量。当我们把项目合成时,我定义的函数和瑶瑶定义的变量名字相同,这时候编译就会出错,这个就叫命名冲突。命名冲突在C语言中解决不了,那怎么办呢?我改?改1000处;瑶瑶改?改2000处。显然,无论谁去改都不合适,这时候命名空间就展现出作用了。C++针对这个缺陷就有namespace这个关键字。

2.2 命名空间 

1、在命名空间中,可以定义变量,可以定义函数,还可以定义结构体,并且所定义的内容都是全局的。

2、同一个工程中允许存在多个命名空间名字相同的命名空间,编译器最后会将他们合并成一个命名空间。

3、命名空间可以嵌套。怎么理解?我和瑶瑶在创建函数和变量时使用了namespace定义的命名空间。但是我们心有灵犀,命名空间的名字一样,在文件合并时两个相同名字的命名空间被合并成一个了,最终还是会编译出错。这时候就可以嵌套定义命名空间,相当于在“小黑屋”外面再套一层“小黑屋”,使命名冲突大大降低。(如下图)

 

2.3 命名空间的访问

命名空间就像一个“小黑屋”,与外界是隔离的,里面存放着一些东西,要访问“小黑屋”里面的内容,要引入  ::  域作用限定符。

 要访问变量a的话,在a前面加上命名空间的名字(“小黑屋”),再加上 :: 域作用限定符,就可以访问TiMi中的成员了。若  ::  前面是空的,则默认访问全局变量。(上图)

 访问还有一种方式,将TiMi这个命名空间释放。如果有多个命名空间嵌套,可以只释放部分成员变量。(上图)

3. C++输入&输出

使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。
注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h

 

在C++中,输入输出不需要指定的类型,比较方便,弥补了C语言的缺陷。但是凡存在皆合理,在某些方面C语言更方便,这两者相辅相成,C++兼容C,使用时哪种简单用哪种。

4. 缺省参数

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

4.1 全缺省参数 

 

实参没有参数时,函数用形参里的参数。一旦实参有参数时,就用实参的。

4.2 半缺省参数

注意:
1. 半缺省参数必须从右往左依次来给出,不能间隔着给
2. 缺省参数不能在函数声明和定义中同时出现,只能在声明中出现,定义不能出现

3. 缺省值必须是常量或者全局变量
4. C语言不支持(编译器不支持)

 5. 函数重载

C语言不支持同名函数,C++支持。

函数重载要求:

函数名相同,参数不同。

参数不同包括参数个数,参数类型,参数类型的顺序有一个不同即可。

假定自己就是编译器,看到代码,你能够判断调用哪个函数,这就可以了。

弥补C语言的缺陷,用起来比较清爽。

 

 6.总结

在学习C++时,一定要认真记笔记,这方面的细节非常之多,多思考。平常也可以看看书,刷刷题,多总结。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值