C++入门

目录

一、命名空间

1、发展由来

2、注意事项

二、输入输出

三、缺省参数

1、功能

2、分类

3、注意事项

四、函数重载

函数重载的由来

函数重载的条件

函数重载的误区

函数重载在C++中的实现

五、内联函数

1、函数栈帧角度观看内联

2、内联的特性

3、优缺点

4、说明

5、适用范围

六、引用

1、引用的意义:

2、引用的特性

七、auto简介(C++11)

1、auto用于自动推导类型

2、auto的有关限定

3、范围for(语法糖)

4、注意事项

八、指针空值(C++11)


一、命名空间

1、发展由来

相对于C语言来说,C++引入命名空间的概念是为了解决C语言中自己定义的变量名称和库中原本存在的名称冲突,引入的命名空间。C++用namespace来解决

2、注意事项

①命名空间只影响使用,不会影响生命周期

②命名空间可以嵌套,指定域作用域多个命名空间会合成一个

③访问有两种形式,分别是制定命名空间进行访问(局部展开)全局展开,这里一般不推荐全局展开,增加代码的健壮性,一般使用局部展开,将常用的进行局部展开,例如:在我们学习C++的过程中,将std进行全局展开,方便进行输入输出的使用。

3、命名空间的几种使用情况

二、输入输出

cout<<                    "<<"称为流插入符号

cin>>                       ">>"称为流提取符号

endl                         换行操作符

三、缺省参数

1、功能

如果没有进行传参,则默认采用缺省参数;如果进行传参,则采用实参

尤其对于栈的初始化、顺序表的初始化开空间有着至关重要的作用

2、分类

缺省参数分为全缺省和半缺省

3、注意事项

①缺省参数必须是常量或者全局变量

②半缺省参数必须是从左向右进行传,中间不能为空

③缺省参数不能在声明和定义同时出现  推荐在声明时进行出现

四、函数重载

1、函数重载的由来

函数名称可以相同,根据传参数的不同进行调用相对应的函数,与C语言相比较,解决函数名称不能相同的局限

2、函数重载的条件

①函数名相同、

②函数的参数不同,函数的参数不同包括 参数的类型不同、参数的顺序不同、参数的个数不同

  • 函数参数类型不同的函数重载

  • 参数个数不同的函数重载

  • 参数顺序不同的函数重载

3、函数重载的误区

仅仅改变函数的返回值不能称为函数重载

4、函数重载在C++中的实现

C++中的函数重载,C++是如何进行区分的呢

核心:C++会将函数名进行修饰,不同的编译器不同的系统修饰规则不同

在liux下 int add(int x,int y)函数名会被修饰成_zaddii

五、内联函数

1、函数栈帧角度观看内联

call--->jump--->函数体

将原来的函数调用,直接替换成函数体

2、内联的特性

①内联是一种空间换时间的做法

②当函数被当成内联函数时,编译阶段会用函数体替代函数调用

3、优缺点

优点:少了函数调用的阶段,效率高

缺点:文件变大

4、说明

①内联对于编译器来说只是一种建议,不同编译器关于inline底层的实现可能不同

②内联函数不建议声明和定义分离,分离导致链接错误

   原因:函数被内联后,函数定义和声明分离后,函数被修饰,找不到函数的地址

5、适用范围

不是递归并且频繁进行调用的小函数

六、引用

1、引用的意义:

引用就是取别名

一定程度简化了指针

2、引用的特性

①引用在定义时必须初始化

②引用的指向不能改变

③引用可以有多个

注:引用初始化引用一个实体后,就不能在引用其他实体,可以用被引用的再去引用其他实体,从而实现引用有多个

3、引用的使用情景

①做函数的参数

一定程度简化了指针

②做函数的返回值

增加函数效率,原因是返回值不用进行临时拷贝

附代码

4、效率比较

  • 传值和传引用的效率比较

  • 值和引用分别作为函数的返回值效率比较

七、auto简介(C++11)

1、auto用于自动推导类型

主要是以后STL用,简化代码,类型很长时可以考虑自动推导

2、auto的有关限定

  • auto不能用于函数的参数
  • anto不能用于数组

3、范围for(语法糖)

关于范围for的解释

自动依次将数组中的值赋值给e,自动判断结束

能够利用引用去改变数组中的值

4、注意事项

①auto可以在同一行定义多个变量,变量必须相同类型

②auto不能作为函数的参数使用

③auto不能用于声明数组

八、指针空值(C++11)

为了打NULL的补丁

NULL->0

用函数重载去验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值