いくつかのオーバーロードされた関数を連鎖させようとしています。それは本当に単純なはずですが、エラーが発生しています。コードは次のとおりです。
void output(char c[])
{
output(c, 0);
}
void output(char c[], int x)
{
int l = strlen(c) - x;
output(c, x, l);
}
void output(char c[], int x, int y)
{
cout << c;
}
int main()
{
output("myname");
output("myname", 3);
output("myname", 2, 4);
}
私が得ているエラーは、チェーンされた部分 (output(c, 0);
とoutput(c, x, l);
. エラーは次のとおりです。
"No matching function for call to 'output (char *&, int)'
"No matching function for call to 'output (char *&, int &, int &)'
私が間違ったことの説明も良いでしょう。