Возможно ли достичь такой функциональности, значение этого параметра будет по умолчанию значением другого параметра, если оно не указано?Установить значение параметра по умолчанию из другого значения параметра
Пример:
class Health
{
public:
// If current is not specified, its value defaults to max's value
Health(int max, int current = max) : max_(max), current_(current) { }
int max_;
int current_;
};
Как сейчас, я получаю ошибку компиляции:
error: 'max' was not declared in this scope
Health(int max, int current = max) : max_(max), current_(current) { }
^
Что делать, если 0 является допустимым значением тока? – Borgleader
или используйте 'const int * current = nullptr' (или' optional '), но это кажется сложным. –
Jarod42
@ Jarod42 Указатель будет супер-уродливым для вызывающего («что вы имеете в виду, я не могу передать литерал ?!»), но «факультативно» - честная игра, я бы сказал. – Angew