У меня есть класс HealthyFood
и enum Fruits{ apple, pear, peach, orange}
. Я создаю в ранее сказанном классе переменную fruit
типа данных Fruits
и хочу создать сеттер для ее заполнения. Для этого мне надо как-то перегрузить оператор ввода, чтобы он строку преобразовывал в Fruits
. Как это сделать?
Попробуйте где то так
enum Fruits{ apple, pear, peach, orange};
std::istream& operator>>(std::istream& is, Fruits& f)
{
std::string s;
is >> s;
if (s == "apple") f = Fruits::apple;
else if (s=="pear") f= Fruits::pear;
else if (s=="peach") f= Fruits::peach;
else if (s=="orange") f= Fruits::orange;
return is;
}
int main(){
Fruits f;
std::cin >> f;
}
если при этом хочется ещё и выводить в "красивом виде", тогда можно дописать оператор вывода
std::ostream& operator<<(std::ostream& os, const Fruits& f)
{
switch (f) {
case 0: { os << "apple"; break; }
case 1: { os << "pear"; break; }
case 2: { os << "peach"; break; }
case 3: { os << "orange"; break; }
default: {os << "------"; break;}
}
return os;
}
и теперь
Fruits f = pear;
std::cout << f;
будет работать так, как Вам хочется.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть несколько классов, в которых есть функции lock() и unlock(), которые управляют переменной класса bool lockЕсли lock == true, то объект становится...
Создал onion-сайт, но переменная $_SERVER не отображает ничего полезногоМне кажется, можно как-то получить информацию о цепочке, её IP и т