Как динамически создавать объекты неопределенного размера?

0

Я пытаюсь создать программу 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

}

Мое предположение заключается в том, чтобы использовать новый оператор внутри цикла, который прерывается, когда пользователь не хочет вводить какие-либо записи. Но проблема заключается в том, что он будет уничтожен, когда он выйдет из цикла.

  • 6
    Читайте о std::vector в вашем любимом учебнике по C ++.
  • 0
    Используйте std :: vector для хранения ваших объектов. Создать новый список покупок grocerylist *glist = new grocerylist();
Показать ещё 1 комментарий
Теги:
object
dynamic

1 ответ

2

Используйте std::vector и просто push grocerylists. Что-то вроде:

int main() {
    std::vector<grocerylist> list;
    [...]
    while(user_wants_to_add_another_list) {
        list.push(grocerylist(...));
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню