美文网首页
内联函数重载函数缺省函数

内联函数重载函数缺省函数

作者: 波洛的汽车电子世界 | 来源:发表于2019-05-02 16:04 被阅读0次

注:以下大部分内容来源于 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;}//先赋初值就会混淆
};

相关文章

网友评论

      本文标题:内联函数重载函数缺省函数

      本文链接:https://www.haomeiwen.com/subject/rwmgnqtx.html