C++入门(5):定义个人函数
来源:互联网 发布:淘宝白夜追凶视频电话 编辑:程序博客网 时间:2024/04/30 08:27
C++入门(5):定义个人函数
函数定义
函数原型通常安排在main()函数的定义之前;
定义函数时,可以给输入参数设置默认值,让这个参数成为可选的,但有一点必须注意:必须把所有的必选参数放在可选参数之前!!
内联函数
创建内联函数最直接的办法是使用 inline 关键字并在 main() 函数的前面定义它,所以内联函数不需要先为它定义原型;
某个函数被编译器当做内联函数来处理最直接的效果是:这个函数的调用将被替换为实际的函数代码,就像那些代码是写在main()函数里一样;
但是,即使使用了inline关键字,函数也并非肯定会被当做一个内联函数来对待。
函数的重载
一般来说,重载的函数最适用于需要对不同的数据类型进行相同处理的场合;我们无法通过只改变函数返回值的类型而重载一个函数。
如果只是想让一个参数能够接受(比如)两个或三个输入参数,把第三个输入参数定义为可选参数(让它有一个默认值)即可。
变量作用域
绕开变量作用域的办法之一是在发出函数调用时按引用传递;
函数内部的变量可以被声明为 static(静态) 的,函数内部的静态变量的值在程序的生命周期内即使经历多次函数调用也不会被自动重置,但它仍然是局部的。
#include <iostream>void testStatic(){ static int count = 0; //在子函数中定义静态变量病初始化为0 count++; //以后每调用一次此函数,静态变量值加1,并打印其值 std::cout << "count = " << count << std::endl;}int testMax(int a, int b, int c = 10){ if(10 == c) //有一个默认的第三参数,如果第三个参数为默认,即为比较两个数中最大的 { return (a>b?a:b); } else { if(a > b && a > c ) { return a; } else if(b > a && b > c) { return b; } else { return c; } }}int main(int argc, char** argv) { int max; max = testMax(3,7); //两个参数时的情况 std::cout << "max = " << max << std::endl; testStatic(); testStatic(); testStatic(); return 0;}
运行结果为
max = 7count = 1count = 2count = 3 //每次调用testStatic(),count值加1
如果在main()函数中加入std::cout << count;
则会出错,因为虽然多次调用函数时,函数内部的静态变量不会被重置,但它仍然是局部的,主程序不能识别。
C++入门(4):文件读写
2 0
- C++入门(5):定义个人函数
- C语言入门(十二)函数的定义和调用
- Haskell 入门(一):定义一个函数
- Clojure 学习入门(6)- 函数定义
- c宏定义函数,
- 定义函数数组[C/C++]
- 变量和函数的声明与定义(C/C++)
- Clojure 学习入门(6)—— 函数定义
- Swift编程语言入门视频教程(十二)--函数的定义
- C 函数声明, 函数原型, 函数定义
- C/C++ 字符串处理小函数(个人总结)
- C && C++函数定义小结
- C语言中定义函数
- C定义宏函数举例
- yolo.c中的函数定义
- C++struct里定义函数
- C语言函数指针定义
- C语言宏定义函数
- Problem J: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换
- data.getData()返回的Uri
- textarea 光标处插入值
- Spark Streaming实时计算框架介绍
- 将Highcharts图表数据生成Table表格
- C++入门(5):定义个人函数
- Android应用坐标系统全面详解
- 浅谈Java中静态初始化块跟非初始化块
- PCA-SIFT总结
- 黑马52期学后总结笔记(五)
- laravel系列1-- laravel安装
- stm32里面关于ADC模块的一些知识。
- AOP(1)
- Java中如何解决double和float精度不准的问题