菜鸟的一个关于C++的默认函数的程序问题
#include <iostream>
int areacube(int a,int b=25,int c=1);
int main()
{
using std::cout;
int a=100;
int b=50;
int c=2;
int d;
d=areacube(a,b,c);
cout < < "first area equals: " < <d < < "\n ";
d=areacube(a,b);
cout < < "second area equals: " < <d < < "\n ";
d=areacube(a);
cout < < "third area equals: " < <d < < "\n ";
return 0;
}
int areacube(int a,int b=25,int c=1)
{
return (a*b*c);
}
高手说下怎么错了?
编译器上是这么写的
D:\Microsoft Visual Studio\MyProjects\57\517.cpp(22) : error C2572: 'areacube ' : redefinition of default parameter : parameter 3
D:\Microsoft Visual Studio\MyProjects\57\517.cpp(2) : see declaration of 'areacube '
D:\Microsoft Visual Studio\MyProjects\57\517.cpp(22) : error C2572: 'areacube ' : redefinition of default parameter : parameter 2
D:\Microsoft Visual Studio\MyProjects\57\517.cpp(2) : see declaration of 'areacube '
Error executing cl.exe.
[解决办法]
C++规定!默认参数不可以重复声明!
看《C++ Primer》,上面有更多解答。