c++程序设计函数

函数的参数传递

在函数被调用时才分配形参的存储单元

实参可以是常量,变量,或者表达式

实参类型必须与形参相符

值传递是传递参数值,即单向传递

引用传递可以实现双向传递

常引用参数可以保障实参数据的安全

含有可变参数的函数

  1. 如果所有的实参类型相同,可以传递一个名为initializer_list的标准库类型
  2. 如果实参的类型不同,我们可以编写可变参数的模板

initializer_list的对象中的元素永远是常量值,我们无法改变initializer_list对象中元素的值。

含有initializer_list形参的函数也可以同时拥有其他形参。

内联函数

关键字inline

  1. 内联函数体内不能有循环语句和switch语句
  2. 内联函数的定义必须出现在内联函数第一次被调用之前
  3. 对内联函数不能进行异常接口声明
inline double calArea(double radius) {

          return PI * radius * radius;

}

constexpr函数语法规定

     常量表达式函数

constexpr修饰的函数在其所有参数都是constexpr时,一定返回constexpr

函数体中必须有且仅有一条return语句。

constexpr int get_size() { return 20; }

 constexpr int foo = get_size();  //正确:foo是一个常量表达式

带默认参数值的函数

  1. 有默认值得形参必须在形参列表的最右边。
int add(int x, int y = 5, int z = 6);//正确

int add(int x = 1, int y = 5, int z);//错误

int add(int x = 1, int y, int z = 6);//错误
  1. 可以预先设置默认的参数值,调用时如给出实参,则采用实参值,否则采用预先设置的默认参数值。
int main()

{

    add(10,20);//10+20

    add(10);//10+6

    add();//5+6

}

int add(int x = 5, int y = 6)

{

    return x+y;

}

函数重载

C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。重载函数的形参必须不同:个数不同或类型不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值