c++里面的函数
来源:互联网 发布:淘宝卖正品aj的店铺 编辑:程序博客网 时间:2024/04/29 01:36
c++里面的函数类型:
1、内联函数
必要性:函数调用需要建立栈内空间,进行参数传递,产生程序执行转移,
这些工作都需要时间开销。有些函数代码短,使用频率高。
如 判断一个数是否是偶数的函数 bool iseven(int n);
内联函数 = 内嵌函数,解决运行效率。
声明为inline,如 inline bool iseven(int n); 编译器看到
inline,为该函数创建一段代码,以便在后面每次碰到该函数的调用都用
相应的一段代码来替换。
“内联”必须在被调用之前声明或定义。
内联函数不能有 while、switch等复杂的控制语句。否则将作普通函数看
待。
递归函数不能做内联函数
内联函数适用于1-5行的函数。
一般定义在写在头文件中。
以后可以用它来代替c中用宏定义函数的不安全做法。
2、递归函数
分直接和间接
直接:自身调用
间接:相互调用 如a调用了b b又调用了a
递归的条件 (1)须有完成函数任务的语句。
(2)一个确定是否能避免递归的测试,退出递归的条件
(3)递归调用语句,参数应该逐渐逼近不满足条件,以致最后断绝递归
(4)先测试,后递归调用。
递归-〉非递归
评价:可读性好,但系统开销太大。根据场合使用。
3、静态函数
讨论范围:一个程序的多个文件。
函数声明和定义默认是extern的。如果 加了static,则限定只能在本文件
有效,不能被其他源文件所用。
好处:允许其他源文件建立使用同名的函数而不冲突
不能被其他文件使用。
4、构造函数
对象不同于变量,对象是有实际意义的,所以对象必须初始化,对象创建时
自动调用构造函数。它的作用就是完成初始化,可以有多个构造函数,可以
重载。
特殊:无返回类型,函数名同类名一样,不能随意调用,默认存在。
结合使用:带默认参数、重载。
5、析构函数
释放资源
特殊:无参数、无返回类型,函数名 ~类名 ,不能随意调用。对象声明周
期结束时会自动调用,没有重载,默认存在。
以调用构造函数相反的顺序被调用。
6、默认参数值的函数
如果不给定函数参数值,则按默认的来。
声明跟定义分开时,只能在在声明中指定默认参数。
顺序:多个默认参数时 ,只能从右往左定义默认参数。
它与重载的关系:可以将一些重载合并。
如果既有默认参数,又重载,一定要注意不要混了。
默认值限定:全局变量,全局常量,甚至函数。 不可以是局部变量。因为
编译默认值时局部变量的值不定。
7、静态成员函数
定义位置与一般成员函数一样。
与类有关,与对象无关。如果用对象去引用它,用的也只是对象的类型。
8、虚函数
指名某个函数具有多态性:根据类型选择调用哪个函数的能力,用virtual
。
子类的可以省略。
只针对类的成员函数
静态成员函数不能是许函数
内联函数不能是许函数
构造函数不能是许函数
析构函数通常声明为许函数。
如:void finishwithobject(base * o)
{
delete o;
}
9、纯虚函数
表明为不具体实现的虚成员函数。形式: virtual+声明 + =0;
一个抽象类至少含有一个纯虚函数
10、重载函数
函数名一样。
判定使用哪个函数,靠参数类型!不能靠返回类型判定。
c++通过名字粉碎实现重载。实质名=函数名_参数类型首字母
重载函数功能是一样的。
11、友元函数
类里面声明的函数,标上friend,就可以访问该类的一切成员,它不是这
个类的成员函数,它是类的朋友。一个类的成员函数可以是另一个类的友元
。
- 【C++】cstring里面的函数简介
- 字符串问题--C里面的strcpy函数
- C语言里面的 malloc 函数
- c语言里面的部分函数
- python调用C语言里面的函数
- C++ 文件里面调用C文件里面的函数——extern "C" 用法解析
- 【C++】构造函数里面的多态的问题
- lock0lock.c里面函数总结
- C++中如何调用C里面的函数
- C里面的内存动态分配函数与存储类别
- C语言里面函数嵌套调用的简单说明谢谢
- C和C++中main函数里面参数的意义
- C和C++中main函数里面参数的意义
- C/C++里面使用的可变参数函数
- object-c 内存里面压缩与解压缩的函数
- object-c 内存里面压缩与解压缩的函数
- object-c 内存里面压缩与解压缩的函数
- c里面关于变参数函数的理解
- 受Ruby on Rails影响的PHP开发框架
- Ent Lib体会
- 2006.五一假期
- 正在读的书
- 论孔子的思想学术方式的科学本质
- c++里面的函数
- VxWorks操作系统复位实战(一)[by Progsoft]
- 上路了,走上J2EE 和 .NET学习之路
- 助手的反叛——浏览器劫持
- 《中庸》 - 孔子
- 飞
- 陪伴我的电脑们
- rqst表示二进制矩阵,很巧妙的技巧
- QQ的彩条可以看下载浏览器下不了的图