我有一个小问题,如何在函数中初始化默认参数?
#include <iostream>
#include <cmath>
using namespace std;
float area(float a, float b, float c);
float area(float a, float b=a, float c =a);
int main() {
cout << area(10) << endl;
return 0;
}
float area(float a, float b, float c){
return a*b*c
}
我收到错误,我怎么能正确地阻止?
答案 0 :(得分:2)
您将不得不使用重载而不是默认参数:
#include <iostream>
#include <cmath>
using namespace std;
float area(float a, float b, float c);
float area(float a);
int main() {
cout << area(10) << endl;
return 0;
}
float area(float a, float b, float c){
return a*b*c;
}
float area(float a){
return area(a,a,a);
}
答案 1 :(得分:1)
如果您希望b
和c
的默认值为a
的值,那么您应该使用重载:
float area(float a, float b, float c){
return a*b*c
}
float area(float a) {
return area(a, a, a);
}
C ++不允许使用参数作为默认参数。所以这个
float area(float a, float b=a, float c =a);
^^ ^^
是一个错误。
答案 2 :(得分:0)
在C ++中
你应该只为一个方法(包括可选参数)设置原型并实现代码,默认值是可选参数被忽略必须是常量而不是未知值...
float area(float a, float b=0, float c=0);
int main() {
cout << area(10) << endl;
return 0;
}
float area(float a, float b=-1, float c =-1);){
if(b==-1 ||c==-1)
{
return a*a*a;
}else
{
return a*b*c;
}
}