Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конструкторы и деструкторы, зачем они нужны? зачем они нужны? 
:(
    Опции темы
NetGod
  Дата 31.3.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 22.3.2008
Где: город Мурманск, с трана Россия

Репутация: нет
Всего: нет



Зачем нужны конструкторы и деструкторы, что они делают?? Как их использовать???
PM MAIL ICQ   Вверх
korian
Дата 31.3.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 2
Всего: 17



http://forum.vingrad.ru/topic-194194.html
google - вторая ссылка с верху
PM   Вверх
Mephisto
Дата 31.3.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



если на пальцах...
Под твой класс выделяется некоторая область памяти в которой находится просто мусор. Конструктор нужен для того чтоб привести этот мусор к нужному состоянию, создать обьекты и.т.п. Деструктор нужен для того чтоб умирающий обьект подчистил за собой мертвые сущности. 

К примеру:
Код

#include <iostream>

using namespace std;

class TT{
public:
  TT(){cout << "Создан ТТ"<<endl;}
  ~TT(){cout << "Убит ТТ"<<endl;}
};

class Test{
public:
  Test(){
    cout << "Создаем ТТ" << endl;
    pLink = new TT;
  }
  ~Test(){
    cout << "Удаляем ТТ" << endl;
    delete pLink;
  }
private:
  TT* pLink;
};

int main(){
  Test* t = new Test;
  delete t;
  return 0;
}



Когда ты обьявишь переменную типа Test в его поле TT* pLink будет мусор. После вызова конструктора переменная заполнится новым экземпляром класса ТТ. 
После того как будет уничтожен твой экземпляр класса Test и если не будет деструктора, то pLink - обьект будучи созданный класом Test никогда не умрет, т.е. иными словами будет утечка.
Чтобы его прибить в деструкторе описываешь код который его уничтожит. 
Должно при выводе написать:
Поэкспериментируй над кодом ;)

Это сообщение отредактировал(а) Mephisto - 31.3.2008, 16:00
PM   Вверх
Graf_h
Дата 31.3.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 482
Регистрация: 18.10.2007
Где: г. Ровно, Украина

Репутация: нет
Всего: 5



а зачем вообще обьекты smile! почитайте принципы ООП и тогда поймете что такое конструкторы, какие есто конструкторы, списки инициализации их применение в конструкторах... и т.д. тогда вам будет стыдно за этот вопрос(не в обиду) smile 


--------------------
Иногда переменная - это просто переменная
PM MAIL ICQ   Вверх
Rififi
Дата 31.3.2008, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 3
Всего: 36



Цитата(NetGod @  31.3.2008,  15:21 Найти цитируемый пост)
Зачем нужны конструкторы и деструкторы, что они делают?? Как их использовать???

чтобы инициализировать и уничтожать данные объекта без участия программиста.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.