У меня есть 3 класса под названием Starter, пицца и десерт, который принимает переменное число строк входов, когда объект создается как,инстанцирование нового объекта в CPP
//pizza takes 2 inputs
Pizza p("margarita","large size");
//starter takes 3 inputs
Starter s("ribs","bbq sauce","small size");
Но я хочу, чтобы создать новый объект используя функцию add(), которая берет строку и сопоставляет ее с классом для создания нового объекта. Например,
add(string type)
{
if(type == "Pizza")
{
Pizza *p = new Pizza();
}
else if(type == "Starter ")
{
Starter *p = new Starter();
}
}
Теперь, мой вопрос заключается в том, как я могу внести вклад в классы по-дружески? Другими словами, я думал, что пользователь может записывать все входы класса в одну строку и не использовать cin для каждого входа.
Скажем, мы получаем пиццу, то, что я не хочу,
cout<<"What type of pizza";
cin>>*input* <<endl;
cout<<"What size";
cin>>*input* <<endl;
Я хочу, чтобы написать все входы в одну линию, как,
вход «Маргариту», «большой»
Хотите ли вы принимать входные данные точно из stdin? Не из файлов или что-то еще? – maxteneff
это будет простой синтаксический анализ. с использованием 'getline()' – Minato
на данный момент я использую getline для получения каждого входа отдельно, могу ли я получить два входа вместе, используя один getline()? @MubashirHanif –