Функция bool должна возвращать true или false. Я предполагаю, что ваше предупреждение вызвано тем, что вы объявляете validData
как bool, но затем присваиваете ему другое значение (возвращаемое функцией calcExchangeAmt
). Это значение преобразуется из его типа значения (double) в логическое значение (true или false).
Итак, ваш метод IsSelectionValid должен просто возвращать true
, если выбор допустим, или false
, если это не так. Тогда любой код должен знать, что информация может поступать соответственно.
Я не знаю много C ++, так что простите меня за проблемы синтаксиса, которые мой код должен иметь, но ваш код должен выглядеть примерно так:
bool isSelectionValid(char selection)
{
return (selection >= 'a' && selection <= 'i') || (selection >= 'A' && selection <= 'I');
}
void myCallingFunction(double amtExchanged, char selection)
{
bool isSelectionValid = isSelectionValid(selection);
if(isSelectionValid)
{
double exchangeAmt = calcExchangeAmt (amtExchanged, selection);
}
else
{
cout<<"Do you wish to continue? (Y for Yes / N for No)";
cin>>yesNo;
if((yesNo =='y')||(yesNo == 'Y'))
{
main(); // or whatever code starts another attempt
}
}