一旦某个形参被赋予了默认值,那么他之后的形参都需要有默认值
函数的实参和形参匹配是自左向右的,而函数的调用过程,实参的入栈顺序是自右向左的
合理设计形参顺序,尽量让不使用默认值的参数放在前面
例如:void foo(int x,int y,int z=10)
{
}
int main()
{
foo(1,2)//没有给z值,z会使用默认值
//但是如果有一个重载的函数foo,它有两个参数,那么则会精确匹配使用重载的函数
foo(1,2,10)
}
CComplex(int r=10,int m=10)//这个构造函数可以构造三种类型,带一个默认参数,带两个默认参数,和不带默认参数的方法
:mreal®
, mimage(m)
{}
函数重载:
同一作用域内的几个函数名字相同但是形参列表不同,称为重载
注意事项:
形参数量或形参类型有所不同
不允许两个函数除了返回值类型外其他所有的要素都相同
main函数不能重载
如果在函数参数中需要传入空指针,那么我们一定要使用nullptr,这个量的定义与c语言的NULL是不一样的
空指针:不指向任何对象