这是关于一个普通双非本科大一学生的C++的学习记录贴
在此前,我学了一点点c语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资源
那么开启正题
今天学了一些C++的基础关键字,和一些零碎的知识点,下面展开分析
涉及关键词:namespace
using
在工程当中会遇见许多重命名现象,针对这种现象,C语言没有很好的解决方案,而C++中给出了这样的语法定义来解决这个问题
借助namespace关键词我们可以创建如上的命名空间,当然,命名空间也可以嵌套定义,如下:
同一个工程目录当中允许存在多个重名的命名空间,编译器最后会合并在同一个命名空间当中
ps:一个工程中test.c和test.h同时出现了n1命名空间,会被合并在一起
我们知道了命名空间的定义,还得知道命名空间如何使用
命名空间的使用方式有三种
当我们需要多次访问某命名空间里的成员时,使用using关键词,相当与将此成员展开,当然,在实际使用当中,我们需要考虑生命周期,及某个成员,在哪个大括号内展开比较好
这种方法会将命名空间内的成员全部展开,来供我们访问
实际使用当中,我们需按需使用这三种使用命名空间的方法
首先看如下代码
和C语言一样,C++也有类似于#inlcude
(早期C++的头文件也使用.h,但后来为了于C语言头文件进行区分,也为了正确得使用命名空间,规定C++头文件不在带.h后缀,只有某些古老得编译器能识别带.h的头文件)
而std是C++标准库的命名空间,C++将标准库的定义实现都放到这个命名空间当中
cout是标准输出对象(控制台) cin是标准输入对象(键盘)
<<是流插入运算符 >>是流提取运算符
相较于C语言,C++的输入输出更加方便,因为C++的输入输出可以自动识别类型
缺省参数是指声明或定义函数时为函数参数指定一个缺省值
在调用函数时,如果没有指定实参则采用形参的缺省值,否则使用指定的实参
缺省参数分为
a. 全缺省参数
b. 半缺省参数
全缺省参数的所有参数都带有缺省值,而半缺省参数只一部分参数带有缺省值,由于比较简单理解,这里就不贴图了
要注意的是,1.半缺省参数必须从右向左来给,不能间隔给
2.函数传参也不支持间隔传参
3.缺省参数不能在函数声明和定义中同时出现
定义:函数重载是函数的一种特殊情况,C++允许在同一作用域下声明几个同名的函数,这些函数的形参列表(参数个数 or 参数类型 or 类型顺序)不同
a,参数个数
b.参数类型
c.类型顺序
首先我们得明白源文件是如何生成可执行程序得
a. 预处理 ——》 头文件的展开/宏替换/条件编译/去注释
b.编译 ——》 检查语法,生成汇编代码
c.汇编 ——》 汇编代码转成二进制的机器码
d.链接 ——》 将目标文件链接在一起
C语言编译函数名字的修饰没有发生变化
C++编译后函数名字的修饰会发生复杂变化(受编译器,形参列表,函数名的影响)
引用不是定义一个新的变量,而是给已存在变量取了一个别名,编译器不会为引用变量新开辟空间,它和引用的变量共用同一块内存空间
a.引用在定义时就必须初始化,再次调用时已经无法改变引用对象,而是访问引用变量
b.引用只能引用一个实体
引用的权限不能高于实体,可以低于实体
于是可以写出如上代码
实际上在类型转换当中,有一个中间临时变量,这个变量是只读的,利用此特性,我们可以理解以上代码的合理性
今天的博客就到这里了,后续内容明天分享
新手第一次写博客,有不对的位置希望大佬们能够指出,也谢谢大家能看到这里,让我们一起学习进步吧!!!