Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 14:52   #1
WarHamster
Пользователь
 
Регистрация: 09.08.2010
Сообщений: 48
По умолчанию Создание и удаление класса

Как сделать это вручную, т.е. не в начале/конце работы программы?)
WarHamster вне форума Ответить с цитированием
Старый 23.10.2011, 14:55   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

WarHamster

Как сделать это вручную, т.е. не в начале/конце работы программы?)

Ты можешь создавать переменные (в том числе и объекты классов) в любом месте программы.
Rififi вне форума Ответить с цитированием
Старый 23.10.2011, 15:16   #3
WarHamster
Пользователь
 
Регистрация: 09.08.2010
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
Ты можешь создавать переменные (в том числе и объекты классов) в любом месте программы.
Я имел в виду что, например, есть у нас какой-то обьект, при запуске проги он автоматически создается через конструктор, при завершении автоматически удаляется деструктором. А мне по ходу выполнения программы нужно его удалить и создать заново, с новым содержимым. Как это сделать?
WarHamster вне форума Ответить с цитированием
Старый 23.10.2011, 16:49   #4
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Так же как и любую другую переменную - либо в стеке либо в куче.
An1ka вне форума Ответить с цитированием
Старый 23.10.2011, 16:59   #5
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от WarHamster Посмотреть сообщение
Как сделать это вручную, т.е. не в начале/конце работы программы?)
Вы можете ограничить время жизни объекта, определив его в наименьшем заключающим его блоке кода. Например,

Код:
struct A {};

A a;

int main()
{
   A a;

   {
      A a;
   }
}
В этом коде первый объект с именем a будет существовать все время выполнения программы, и конструируется до входа в главную функцию main.

Второй объект с именем a будет создан после того, как главная функция main получит управлениее.

И третий объект с именем a будет создаваться и уничтожаться, когда управление перейдет во внутренний блок кода функции main.


Кроме того вы сами можете управлять созданием и удалением объектов с помощью операторов new и delete.

Например,

Код:
struct A {};

int main()
{
   A *p = new A;

   /* некоторый код */

   delete p;
}
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление объекта производного класса оператором delete Trinock Общие вопросы C/C++ 12 22.09.2011 13:41
Удаление элемента из класса контейнера Tema_Crazzzy Общие вопросы C/C++ 7 26.11.2010 15:51
удаление экземпляра класса Juffin Общие вопросы Delphi 5 02.11.2010 11:57
создание класса driga Помощь студентам 0 09.04.2010 21:14
Выгрузка(удаление) экземляра класса tolikman Microsoft Office Excel 6 25.01.2009 03:30