Я пытаюсь создать программу C++, когда пользователь вводит свой выбор, если он хочет добавить еще одну запись, и если да, то создайте новый объект для этой записи.
Итак, если я включаю конструкторы, то как мне создать новый объект каждый раз, когда пользователь хочет?
(Если я дам предопределенный размер массиву объекта, тогда будет вызываться конструктор, скажем 50 раз, и инициализировать все 50 объектов, в то время как пользователь может только хотеть вводить меньше). Давайте просто скажем
class grocerylist
{
float price;
char pname;
public: grocerylist(){.....} //constructor
<some code>
.....
}
main()
{
//grocerylist a[50]; this will call constructor 50 times! which is not desired
}
Мое предположение заключается в том, чтобы использовать новый оператор внутри цикла, который прерывается, когда пользователь не хочет вводить какие-либо записи. Но проблема заключается в том, что он будет уничтожен, когда он выйдет из цикла.
Используйте std::vector
и просто push
grocerylists. Что-то вроде:
int main() {
std::vector<grocerylist> list;
[...]
while(user_wants_to_add_another_list) {
list.push(grocerylist(...));
}
}
std::vector
в вашем любимом учебнике по C ++.grocerylist *glist = new grocerylist();