CPP基础2

函数

1.普通函数

定义

int add(int x, int y);
int a = 2;
add(a)
  1. int x形参不占用内存
  2. 实参 a 给形参初始化后,形参才分配内存
  3. 形实结合有值调用和引用
    • 值调用就是传递数值
    • 引用传递地址

实际应用举例

引用

void swap(int &x)
{
    x = 4;
}
int a = 5;
swap(a);
swap(1);//错误引用必须传地址,void swap(int x)则对

注意事项

引用相当于给变量取一个别名

int i, j;
int &a = i;
j = 10;
a = j;//相当于 i=j
cout << i << endl;
  1. 声明一个引用时必须同时对他进行初始化,使他指向一个已存在的对象
  2. 引用被初始化后不能改为指向其他对象了

2.内联函数

定义

函数前面加 inline 修饰

  1. 无inline的函数简单,调用频繁自动转换成inline函数
  2. 有inline的函数,过于繁琐自动转换成普通函数

实际应用举例

普通函数
  1. 函数调用会降低程序的执行效率
  2. 过程
    1. 保存现场和返回地址 跳到
    2. 子函数执行 完成
    3. 取出现场和返回地址
  3. 时间和空间的开销
内联函数

不是在调用时候发生控制转移,在编译时将函数体嵌入每一个调用处

注意事项

使用内联函数注意

  1. 一般不能有循环语句或switch
  2. 不能进行异常接口的声明

3.带默认形参值函数

声明

int add(int x = 5);

实际应用举例

int add(int x = 5);

void main()
{
    add();
    add(7);
}

int add(int x)
{
    return x + 1;
}

注意事项

可多次声明在不同的作用域内

int add(int x = 5);
void main()
{
    int add(int x = 7);
    add()//x 默认是 7
}
//其他函数调用 add() x 默认是6

4.函数重载

定义

  1. 函数名相同
  2. 形参个数或类型不同
  3. 与返回值无关
  4. 调用时编译器进行形参和实参的最佳匹配
int add(int x);
float add(float x);

实际应用举例

2dx的 create 方法

注意事项

二义性

void fun(int x, int y=10);
void fun(int x);
func(10)//产生二义性,那个都已调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值