Использование членов данных класса в функции внутри дружественной функции
Есть две фунции: одна из них дружественная - 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;
}