例如下面的例子,能否(如何)区别fn1的两次调用。(与Common Lisp中的函数可选参数相似)
我刻意传递了与默认参数相同的值,防止仅仅使用比较值的方法区分。
Linux系统,编译器为g++ 4.7.2。可以利用编译器特性。
#include <iostream> void fn1(int a,int b=10); void fn1(int a,int b) { std::cout<<"a="<<a<<" b="<<b<<std::endl; } int main(void) { fn1(1); fn1(1,10); return 0; }
学习是最好的投资!