void print(int a)
{
printf("void print(int a)\n");
}
void print(int a, int b)
{
printf("void print(int a, int b)\n");
}
int main()
{
print(2);
print(2, 3);
}
以上代码是函数重载,可以输出正确的结果;下面的代码是使用默认参数,同样可以输出正确结果。
void print(int a, int b = 10)
{
printf("void print(int a, int b)\n");
}
int main()
{
print(2);
print(2, 3);
}
如果,将代码写成默认参数和函数重载同时存在的情况,则会报错,因为计算机并不清楚是选择默认参数还是函数重载。void print(int a)
{
printf("void print(int a)\n");
}
void print(int a, int b = 10)
{
printf("void print(int a, int b)\n");
}
int main()
{
print(2);
}
本文探讨了C/C++中函数重载与默认参数的概念及其使用限制。通过具体示例展示了如何正确应用这两种特性,并解释了它们之间的区别及潜在冲突。

1022

被折叠的 条评论
为什么被折叠?



