我们可以定义两个同名但参数不同的函数吗?

新手上路,请多包涵

当我们需要定义另一个函数时,我很困惑,我们可以给它一个不同的名称。但是在 LeetCode 的讨论中,我发现了一个流行的帖子,其中有两个函数名称相同,但参数不同。

 int longestPalindromeSubseq(string s) {
    return longestPalindromeSubseq(0,s.size()-1,s);
}
int longestPalindromeSubseq(int l, int r, string &s) {
    if(l==r) return 1;
    if(l>r) return 0;  //happens after "aa"
    return s[l]==s[r] ? 2 + longestPalindromeSubseq(l+1,r-1, s) :
        max(longestPalindromeSubseq(l+1,r, s),longestPalindromeSubseq(l,r-1, s));
}

原文由 Sachin Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 891
1 个回答

当我们需要定义另一个函数时,我很困惑,我们可以给它一个不同的名称。

这是C++最基本的特性之一:函数重载。在 C 中,你根本不能有两个同名的函数。在 C++ 中,只要函数的函数签名不同,即两个函数具有相同的名称但参数集不同,这是完全可能的。

https://en.wikipedia.org/wiki/Function_overloading

原文由 artm 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题