C++基础

C++在C语言的基础上扩充了面向对象的概念

缺省参数

什么是缺省参数

缺省参数即函数参数的默认参数值,作用是为函数参数给一个默认值。该默认值就是你不传参的时候,编译器会自动用这个默认值代替

缺省参数的分类

全缺省参数

定义:即函数中的所有参数都有一个默认值

C++基础_第1张图片

 半缺省参数

即给函数参数部分默认值。注意,并不是给一半的默认值

C++基础_第2张图片

注意事项
第一

半缺省参数,从右边到左边必须连续,不能这样

C++基础_第3张图片

C++基础_第4张图片

C++基础_第5张图片

 第二

分文件编写时,函数定义和函数声明不能同时都有缺省参数

C++基础_第6张图片

C++基础_第7张图片

 报错如下

C++基础_第8张图片

 第三

缺省值必须是常量或者全局变量

第四

C语言并不支持缺省参数这一语法

函数重载

C++允许在同一个作用域里面声明几个类似的同名函数,这些函数的形参列表(参数个数,类型,顺序)必须不同。C语言不支持函数重载

注意:函数重载的参数个数、参数类型、参数顺序必须有一个不同

int f(int a,int b,int c)
{
    cout<

 引用和指针

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

指针:指针变量用来存放变量的地址,需要开辟额外的空间

区别

初始化:引用在定义的时候必须初始化,指针则没有要求(尽量初始化,防止野指针)

引用在初始化一个实体之后,就不能再引用其他的实体,而指针可以在任意时候指向一个同类型实体

C++基础_第9张图片

 对const的引用

 C++基础_第10张图片

 本来引用类型和变量类型必须是一致的,但是为什么这里不会报错呢?这中间到底发生了什么?

const double tmp=a;
const double& b=tmp;
//在这张情况下,b绑定了一个临时量对象。这个临时量对象需要编译器开辟一个额外的空间来存储

//在函数中,如果形参不需要改变,最好用一个const来修饰
void func(const int& a)
{
}

 C++基础_第11张图片

 权限可以缩小,但是不可以放大

内联函数inline

用inline修饰的函数,在调用时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,提升了程序的运行效率(如果是递归调用该函数则用inline修饰后基本上没有作用)

C++基础_第12张图片

你可能感兴趣的:(c++,开发语言)