《C++知识总结之三》

前言:

   承接上一篇,继续开启c++总结之路。

正文:

         第三章函数和函数模板

   类对象一般包含数据成员和成员函数。

   c++函数参数有两种传递方式:传值和传地址。

   传地址值传递的是值,不是地址;传地址传的是地址而不是地址值。传递对象地址值是使用对象指针作为参数;传递地址时使用对象引用作为参数。

   对象作为函数参数

   是将实参对象的值传递给形参对象,单向传递。形参拥有实参的备份。

   对象指针作为函数参数

   将指向对象的指针作为函数参数,形参是对象指针(指针可以指向对象的地址),实参是对象的地址值。

   引用作为函数参数

   即引用形参,此时函数并没有对形参对象初始化,即没有指定形参对象是哪个对象的别名。在函数调用时,实参对象名传给形参对象名,形参对象名就成为实参对象名的别名。实参对象和形参对象代表同一个对象,改变形参对象的值就是改变实参对象的值。

   默认参数

   默认参数就是不要求程序员设定该参数,而由编译器在需要时给该参数赋默认值。当程序员需要传递特殊值时,必须显示地指明。默认参数是在函数原型中说明的,默认参数可以多于1个,但必须放在参数序列的后部。

   深入讨论函数返回值

   c++函数的返回值类型可以是除数组和函数以外的任何类型。非void类型的函数必须向调用者返回一个值。数组只能返回地址。当函数返回值是指针或引用对象时,函数返回所指的对象必须继续存在,不能将函数内部的局部对象作为函数的返回值。

   内联函数

   使用关键字inline说明的函数为内联函数。

   在c++中,除具有循环语句、switch语句的函数不能说明为内联函数外,其他函数都可说明为内联函数。

   优势:使用内联函数可加快程序执行速度,但如果函数体语句多,则会增加程序代码的大小。使用小的内联函数在代码速度和大小上可以取得折中,其他情况下取决于程序员是追求代码速度还是追求代码的规模。

   编译器必须知道内联函数的函数体,才能进行内联替换。所以函数必须在程序中第一次调用次函数的语句出现之前定义。

   函数重载和默认参数

   函数重载可使一个函数名具有多种功能,即具有“多种形态”,这种特性为多态性。

   函数重载:参数类型和个数不同。

   动态联编或迟后联编:源代码只指明函数调用,而不说明具体调用哪个函数。直到程序运行时才能确定调用哪个函数,动态联编需要虚函数的支持。

   静态联编或先期联编:编译器在编译时,能根据源代码调用固定的函数标识符,并用物理地址代替他们。在程序被编译时进行。

   使用默认参数,就不能对少于参数个数的函数进行重载。

  

结语:       

                      越努力越幸运                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值