Уничтожение объекта

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Sergik1977
Сообщения: 2
Зарегистрирован: 15 сен 2008, 13:39

Помогите решить этих два задания. Одно вроде я как сделал но так и не понял что они имели виду уничтожение объекта, про конструктор и деструктор ни слова в первом задании не говорится. А с вторым у меня сложности я вообще понять не могу зачем нужен деструктор если С++ сам удаляет объект если он выходит из зоны видимости! Помогите а то экзамен на носу а я все плаваю в терминологии С++. В отместку могу помочь с ассемблером под DOS.


1. Записать декларацию класса инкапсулирущего объект "Персона".
Обеспечить методы создания и уничтожения объекта, ввода/вывода,
доступа к полям на чтение.


2 Записать декларацию класса "Вектор" (одномерный массив).
Обеспечиь методы создания, уничтожения объекта, метод ввода, вывода,
метод доступа к элементам вектора. Записать реализацию
конструктора и деструктора.

Код: Выделить всё

#include <iostream>
using namespace std;
class myclass {
int a;                      //
public:                   // открытые данные
int b;                  //
void setab (int i);
int geta();
void reset();
};
void myclass::setab(int i) {a=i;b=i*i;}
int myclass::geta()  {return a;}
void myclass::reset(){setab(0);}
int main(){
myclass Persona;                 // Создание объекта  Persona
Persona.setab(5);              // метод ввода
cout<<"Persona: ";
cout<<Persona.geta()<<' ';   //  метод вывода
cout<<Persona.b;          // доступ к полям на чтение можно и изменять
cout<<'\n';
Persona.reset();         // обнуление объекта
getchar() ;
return 0;
}

Аватара пользователя
demon416
Сообщения: 178
Зарегистрирован: 30 янв 2006, 14:03
Откуда: kirovskoe

метод создания и метод уничтожения это и есть конструктор и деструктор
они нужны если обьект использует какиенибудь ресурсы например динамическую память соответственно в конструкторе память выделяется а в деструкторе освобождается
ака хинт: коментируйте код, самим же легче будет разобраться ;)
Sergik1977
Сообщения: 2
Зарегистрирован: 15 сен 2008, 13:39

Demon416 вот это будет правильным решением первого задания:

[

Код: Выделить всё

#include <iostream>
using namespace std;
class myclass {
int a;                      //
public:                   // открытые данные
myclass() ;             //  это конструктор будет
~myclass() ;            //  это деструктор будет
int b;                    //
void setab (int i);
int geta();
void reset();
};
// Определение конструктора
myclass:: myclass ()
{ a=0;                              
}
// Определение деструктора
myclass::~myclass ()
{  };
void myclass::setab(int i) {a=i;b=i*i;}
int myclass::geta()  {return a;}
void myclass::reset(){setab(0);}
int main(){
myclass Persona;                 // Создание объекта  Persona
Persona.setab(5);              // метод ввода
cout<<"Persona: ";
cout<<Persona.geta()<<' ';   //  метод вывода
cout<<Persona.b;          // доступ к полям на чтение можно и изменять
cout<<'\n';
Persona.reset();         // обнуление объекта
getchar() ;
return 0;
}
Ответить