Customer *object1 = new Customer();
В данном случае, память под объект Customer выделяется в отдельной куче памяти и существует пока объект явно не удалят через delete в отличие от
Customer object2;Тут объект существует на стеке или глобальном пуле памяти, пока "видима" переменная object2
Может у кого-то есть ответ на вопрос?
dmipec:
Ребята, помогите разобраться, каким образом выделяется память в данном случае
Правильнее будет вот так:
В данном случае, память под объект Customer выделяется в отдельной куче памяти и существует пока объект явно не удалят через delete в отличие от
Спасибо!
Rashid Umarov:
Особый случай представляют из себя указатели объектов, так как объявление указателя не влечет за собой инициализации соответствующего объекта.
Динамически размещаемые объекты инициализируются только в момент создания экземпляра класса оператором new.
Инициализация объекта предполагает вызов конструктора соответствующего класса.
В данном примере:
Customer object1 = new Customer();
object1 - это ссылка на экземпляр класса?
Ilyas пишет, что...
Правильнее использовать указатель.
Ilyas пишет, что...
Правильнее использовать указатель.
Нет правильного и неправильного использования. Если количество создаваемых элементов заранее известно, то использовать динамическое создание объекта с помощью слова new - как правило нет необходимости. Если объекты создаются по ходу выполнения программы, и их количество заранее не известно, без сложно обойтись.
Если только изучаете программирование, лучше обойтись без new.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования