Использование членов данных класса в функции внутри дружественной функции

Есть две фунции: одна из них дружественная - input, вторая обычная - whatdwr(нужна для предотвращения ввода отрицательного значения или символьного ввода). Функция input работает исправно, но при попытке вызова внутри нее функции whatdwr выдает номер этой строки с ошибкой. Немного не понимаю, почему whtdwr не может принять в качестве параметра value.frstside ведь объект класса определяется уже в input, и, по сути, надобности в еще одном определении объекта мне не нужно, так как работаю я просто с числом, а не с членом данных(имею ввиду признать whatdwr за дружественную функцию и передавать в ее параметр truangle &value).

class triangle {
    double frstside, secside, thside;
public:
    friend void input(triangle &value);
    triangle() {
        frstside = 0;
    }
    ~triangle() {
        cout << "Вызвался деструктор" << endl;
    }
    double GetF() {
        return frstside;
    }
    void SetF(double frstside){
        this->frstside=frstside;
    }
}; 
int main(void)
{
    triangle sides;
    input(sides);
    return 0;
}
void input(triangle &value) {
    setlocale(LC_ALL, "Rus");
    cout << "Введите сторону треугольника:" << endl;
    cout << "------------------------" << endl;
    cout << "Cторона A: " << endl;
    value.frstside = whatdwr(value.frstside);
}
double whatdwr(double x) {
    do {
        scanf("%lf", &x);
    } while (getchar() != '\n' && getchar() != EOF);
    if (x < DBL_EPSILON) {
        return whatdwr(x);
    }
    return x;
}

Ответы (0 шт):