- 函数定义:函数由函数名以及一组操作数类型唯一的表示。函数的操作即形参,在一对圆括号内声明,形参和形参之间必须读好分隔。函数执行的运算在一个称为函数体的块语句中定义。每一个函数都有一个相关的返回类型。其中函数的返回类型可以是内置类型、类类型、复合类型,还可以是void类型,表示函数不反回任何值。# 函数不能返回里一个函数或者内置数组类型,但是可以返回函数指针,或者指向数组元素的指针的指针 @ 在C++中必须指明返回值的类型,因为在C++中没有默认的返回类型。
- 参数传递:1、非引用形参:是通过复制对应的实参实现初始化。当用实参副本初始化时,函数并没有访问调用所传递的实参本身,因此不会修改实参的值;指针形参:函数的形参可以是指针,此时将复制实参指针。与非引用类型的形参一样,该类型形参的任何改变也仅用于局部副本;const形参:如果需要保护指针指向的值,则形参需定义为指向const对象的指针;2、引用参数:对于不适宜复制的实参,则使用引用;利用const引用避免复制。3、传递指向指向指针的引用:即指向指针的引用.
- void ptrswap(int *&v1, int *&v2)
- {
- int *temp=v2;
- v2=v1;
- v1=tmp;
- }
- void ptrswap(int *&v1, int *&v2)
- 默认实参:调用函数时,可以省略有默认参值得实参。编译器会为我们省略的实参通过默认值。
- 内联函数:将函数指定为内联函数,就是将它在程序中每个调用点上“内联地”展开,在程序中避免函数调用时用到的栈的开销。关键字:inline。内联说明对于编译器来说只是一个建议,编译器可以选择忽略这个建议。对于内联函数应该放在头文件中。
- 类的成员函数:成员函数包 1、函数返回类型 2、函数名 3、用逗号隔开的形参表 4、包含在一对花括号里面的函数体。对于每个成员函数都有一个额外的、隐含的形参this。
- 重载函数和重复声明:如果具有相同的名字而形参表不同。如果两个函数声明的返回类型和形参表完全匹配,则将第二个函数视为第一个重要的声明。如果两个函数的形参表完全相同,但是返回类型不同,则第二个声明是错误的。
- 对于重载确定的三个步骤:
- 候选函数:
- 选择可行函数
- 寻找最佳匹配
- 含有多个形参的重载确定