1--函数重载
main 函数不能重载;
重载函数在形参数量或形参类型上有所不同;
不允许两个函数除了返回类型外其他所有的要素都相同(即函数重载不允许只有返回类型不同);
如果形参是某种类型的指针或引用,则通过区分其指向的是常量对象还是非常量对象可以实现函数重载;
Record lookup(Account *); // 函数作用于 Account 的引用
Record lookup(const Account&); // 重载函数,作用于常量引用
2--内联函数
内联函数可以避免函数调用的开销;将函数指定为内联函数,编译器会将其在每一个调用点上进行展开,通过避免函数调用的开销;
使用 inline 关键字声明内联函数;
constexpr 函数是指能用于常量表达式的函数,其返回类型及所有的形参类型均为字面值类型,函数体内必须有且仅有一条 return 语句;
在 constexpr 函数初始化时,编译器会把对 constexpr 函数的调用替换成其结果值,并将其隐式地转换成内联函数;