void f(const int n)和void f(int n)为什么是重定义? 13 次浏览 函数参数用const修饰,const不影响函数签名,所以这样的函数定义是重定义。编译器看到参数有const,只是为了确保代码不会意外传入非const参数,而并不是生成了一个带const区分符的不同函数。 它与类const成员函数不同,这是用于区分const对象和非const对象。