У меня небольшой вопрос, как я могу инициализировать аргументы по умолчанию в функции?
#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
}
Я получаю ошибки, как я могу сделать это правильно?
3 ответа
Вам придется использовать перегрузку вместо параметров по умолчанию:
#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);
}
В 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;
}
}
Если вы хотите, чтобы значение по умолчанию для 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);
^^ ^^
Это ошибка.
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.