C++基础

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

缺省参数

什么是缺省参数

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

缺省参数的分类

全缺省参数

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

 半缺省参数

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

注意事项
第一

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

 第二

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

 报错如下

 第三

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

第四

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

函数重载

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

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

int f(int a,int b,int c)
{
    cout<<a<<endl;
}

int f(double a,int b,int c)
{
    cout<<a<<endl;
}
//参数类型不同构成重载


int f(int a,int b)
{
    cout<<a<<endl;
}

int f(int a)
{
    cout<<a<<endl;
}
//参数个数不同构成重载

int f(int a,double b)
{
    cout<<a<<endl;
}

int f(double a,int b)
{
    cout<<a<<endl;
}
//参数顺序不同构成重载


int f(int a,int b)
{
    cout<<a<<endl;
}

int f(int b,int a)
{
    cout<<a<<endl;
}
//不够成函数重载

 引用和指针

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

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

区别

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

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

 对const的引用

 

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

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

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

 

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

内联函数inline

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

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值