玩法一 函数模板
问题背景,及解决办法:
C++中可以进行函数重载,问题是相同的函数体要写多次,针对函数重载时,参数相同的情况,可以使用函数模板,只需编写一次函数体
函数模板定义如下:
template<typename T>
T add(T a, T b) {
return a + b;
}
用T代替之前明确的数据类型,也可以换成其他字母,只需修改typename后面的字母。
函数模板的使用同正常函数
玩法二 使用默认形参
若是函数多次调用时使用同一数据,可以使用默认形参,加快程序速度
默认参数,即直接为形参赋值,在函数声明和函数定义两者一个中赋值就可,两者都赋值可能造成编译出错。
注意事项:
- 形参可以全部赋值,如果只赋值函数中的部分形参,这部分形参必须要排在形参列表的最后面
- 函数不能同时使用默认参数和函数模板,会导致二义性,从而出错
玩法三 类外定义成员函数
当成员函数的函数体小且不含有循环等结构,从软件工程方面来看,可以在类中声明成员函数,在类外定义成员函数。
如果类外定义的成员函数时内置成员函数,类的声明和函数的定义必须在同一个头文件里