注:以下大部分内容来源于 coursera 课程《C++程序设计》
内联函数
函数调用(将参数放到栈里面去,将结果放到栈里面去,跳转到这个函数的地址去执行)需要时间,为了减少时间,引入了内联函数。
调用内联函数时,直接将函数里面的代码插入到调用语句处,不会产生调用函数的语句。
做法:在函数定义前加上inline这个关键字。
inline max(int a, int b)
{
if (a> b) return a;
return b;
}
重载函数
一个或多个函数,函数名称相同,但是参数个数和参数类型不相同,叫函数重载。
int Max(int a, int b){}
int Max(char a, char b){}
int Max(double f1, double f2){}
编译器根据调用语句中实参的个数和类型来调用相应的函数。
如果函数名相同,参数类型和个数都相同,只是返回值不同,则叫重复定义。
函数缺省参数
定义函数的时候可以让最右边的若干个函数参数有缺省值,在调用的时候,这些没写的参数就是缺省值。
void func(int x1, int x2=2, int x3 = 3){}
func(10,8);
func(10);
func(10,,8); //错误,缺省值只能从右边起连续
目的:提高函数的可扩充性。在函数需要新的参数,但是旧调用语句不需要新的参数的时候,就可以用缺省函数。
内联成员函数
- inline +成员函数
- 整个函数体出现在类定义内部
class B{
incline void func1{};
void func2{
};
};
void B::func1(){}//外部调用
重载成员函数
class B{
int x,y;
public:
void Init(){}
int ValueX(){return x;}//用来显示值
int ValueX(int val){return val;}//用来赋值
};
一个用来赋值,一个用来显示值。
使用时要避免混淆
class B{
int x,y;
public:
void Init(){}
int ValueX(){return x;}
int ValueX(int val =0){return val;}//先赋初值就会混淆
};
网友评论