当我们需要定义另一个函数时,我很困惑,我们可以给它一个不同的名称。但是在 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 许可协议
这是C++最基本的特性之一:函数重载。在 C 中,你根本不能有两个同名的函数。在 C++ 中,只要函数的函数签名不同,即两个函数具有相同的名称但参数集不同,这是完全可能的。
https://en.wikipedia.org/wiki/Function_overloading