Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MishaMoix
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 99
#1

Создание объекта в области памяти - C++

23.07.2014, 15:04. Просмотров 335. Ответов 2
Метки нет (Все метки)

Не могу разобраться с таким вопросом. Пусть есть у нас класс Example (у него есть стандартный конструктор и неважно что он делает). и имеется следующая функция:
C++
1
2
3
4
5
6
       void foo(){
              Example one();
              Example two;
              Example *three = new Example;
              Example *four = new Example();
       }
Теперь сам вопрос:
1) one и two создается в стеке и удаляется после того как выйдем за область видимости функции? (т.е. память заготавливается еще на этапе компиляции под данные объекты)
2) three и four создается в куче и когда мы выходим мы теряем указатели и происходит утечка памяти?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2014, 15:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание объекта в области памяти (C++):

Создание объекта в области памяти - C++
Здорова! Тут вообщем не получается создать в одной и той же области памяти повторно объекты От есть код: //fynkci9 clone() #include...

Создание объекта класса, чтобы он постоянно висел в памяти, и чтобы память выделялась один раз - C++
Как можно организовать класс, а так же создание объекта класса, чтобы он постоянно висел в памяти на протяжении всей работы программы, и...

Создание объекта в функции и возврат объекта из нее - C++
Не могу разобраться с ссылками. Возможно ли вернуть из функции объект созданный в стеке при этом копи конструктор публичный. ...

Размер области памяти - C++
Добрый вечер. Подскажите, пожалуйста, почему при выполнении данной программы объем памяти по каждой строке равен 4? Ведь по идее...

Адрес области памяти - C++
Что такое адрес области памяти? Чем он отличается от адреса переменной? - Дайте, пожалуйста, определение. Искал в интернете и нашел только...

Двоичное представление области памяти - C++
Здравствуйте. В одной из лабораторных работ требуется взять готовые функции из методички и, в принципе, только посмотреть, какой результат...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
23.07.2014, 15:13 #2
Цитата Сообщение от MishaMoix Посмотреть сообщение
1) one и two создается в стеке и удаляется после того как выйдем за область видимости функции? (т.е. память заготавливается еще на этапе компиляции под данные объекты)
2) three и four создается в куче и когда мы выходим мы теряем указатели и происходит утечка памяти?
1) Да. Ну кроме того, что Example one(); может быть интерпретировано компилятором как объявление функции one, возвозвращающей объект типа Example

2) Да.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.07.2014, 15:50 #3
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Example one(); может быть интерпретировано компилятором как объявление функции one, возвозвращающей объект типа Example
не может, а так и есть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2014, 15:50
Привет! Вот еще темы с ответами:

Удаление вектора из области динамической памяти. - C++
Всем привет! Прошу разъяснить. Как правильно удалить содержимое вектора? class Coordinate { public: Coordinate() {} int...

Доступ к области памяти из другого класса - C++
Есть класс в котором создаётся область в памяти, как получить из другого класса доступ к этой облпсти в возможностью перезаписи? В примере...

Размещение объекта в памяти - C++
Возможно ли размещение объекта в заранее выделенной памяти, например в массиве? Тоесть не просто скопировать, а так чтобы создание...

Сохранить переменный член в области динамической памяти ???? - C++
Есть класс class Analiz { public: Analiz(); ~Analiz(); int A(){return itsA;} ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru