C++从零开始(day1)——基础关键字1

本文记录了一名大一学生学习C++的过程,介绍了命名空间的作用、使用方法,C++的输入输出机制,缺省参数的概念,以及函数重载和引用的特点。旨在为初学者提供基础教程和学习资源。
摘要由CSDN通过智能技术生成

这是关于一个普通双非本科大一学生的C++的学习记录贴

在此前,我学了一点点c语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资源

那么开启正题

今天学了一些C++的基础关键字,和一些零碎的知识点,下面展开分析

1.命名空间

1.1命名空间的定义

涉及关键词:namespace

                      using

在工程当中会遇见许多重命名现象,针对这种现象,C语言没有很好的解决方案,而C++中给出了这样的语法定义来解决这个问题

借助namespace关键词我们可以创建如上的命名空间,当然,命名空间也可以嵌套定义,如下:

 同一个工程目录当中允许存在多个重名的命名空间,编译器最后会合并在同一个命名空间当中

ps:一个工程中test.c和test.h同时出现了n1命名空间,会被合并在一起

1.2命名空间的使用

我们知道了命名空间的定义,还得知道命名空间如何使用

命名空间的使用方式有三种

a. 加命名空间名称以及作用限定符 (  : :  ) 

 b .使用using将命名空间中某个成员引入

当我们需要多次访问某命名空间里的成员时,使用using关键词,相当与将此成员展开,当然,在实际使用当中,我们需要考虑生命周期,及某个成员,在哪个大括号内展开比较好 

c .使用using namespace 命名空间名称  引入

这种方法会将命名空间内的成员全部展开,来供我们访问

实际使用当中,我们需按需使用这三种使用命名空间的方法

2.C++的输入输出

首先看如下代码

和C语言一样,C++也有类似于#inlcude<stdio.h>的基础头文件及#include<iostream>

(早期C++的头文件也使用.h,但后来为了于C语言头文件进行区分,也为了正确得使用命名空间,规定C++头文件不在带.h后缀,只有某些古老得编译器能识别带.h的头文件)

而std是C++标准库的命名空间,C++将标准库的定义实现都放到这个命名空间当中

cout是标准输出对象(控制台)     cin是标准输入对象(键盘)

 <<是流插入运算符                         >>是流提取运算符

相较于C语言,C++的输入输出更加方便,因为C++的输入输出可以自动识别类型

 

 3.缺省参数

缺省参数是指声明或定义函数时为函数参数指定一个缺省值

在调用函数时,如果没有指定实参则采用形参的缺省值,否则使用指定的实参

缺省参数分为

a. 全缺省参数

b. 半缺省参数

全缺省参数的所有参数都带有缺省值,而半缺省参数只一部分参数带有缺省值,由于比较简单理解,这里就不贴图了 

要注意的是,1.半缺省参数必须从右向左来给,不能间隔给

                      2.函数传参也不支持间隔传参

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

4.函数重载

4.1C++的函数重载

定义:函数重载是函数的一种特殊情况,C++允许在同一作用域下声明几个同名的函数,这些函数的形参列表(参数个数 or 参数类型 or 类型顺序)不同

a,参数个数 

b.参数类型 

c.类型顺序 

4.2为什么C++支持函数重载而C语言不支持

首先我们得明白源文件是如何生成可执行程序得

a. 预处理   ——》 头文件的展开/宏替换/条件编译/去注释

b.编译   ——》 检查语法,生成汇编代码

c.汇编   ——》 汇编代码转成二进制的机器码

d.链接    ——》 将目标文件链接在一起

C语言编译函数名字的修饰没有发生变化

C++编译后函数名字的修饰会发生复杂变化(受编译器,形参列表,函数名的影响)

5.引用

5.1引用的概念

引用不是定义一个新的变量,而是给已存在变量取了一个别名,编译器不会为引用变量新开辟空间,它和引用的变量共用同一块内存空间

5.2引用的特性

 a.引用在定义时就必须初始化,再次调用时已经无法改变引用对象,而是访问引用变量

 b.引用只能引用一个实体

 5.3常引用

 

这种用法是错误的

引用的权限不能高于实体,可以低于实体 

 

于是可以写出如上代码

实际上在类型转换当中,有一个中间临时变量,这个变量是只读的,利用此特性,我们可以理解以上代码的合理性

 今天的博客就到这里了,后续内容明天分享

新手第一次写博客,有不对的位置希望大佬们能够指出,也谢谢大家能看到这里,让我们一起学习进步吧!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值