Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 46

Почему не работает деструктор?

07.04.2016, 15:53. Показов 1617. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, почему у меня не работает деструктор?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream.h>
#include <string.h>
#include <conio.h>
 
class Employee{
public:
   //Konstruktor bez parametrov
   Employee();
 
   Employee (const char *n, int a, int g);
 
   //Konstruktor s parametrami
   void setEmployee (const char *, int, int);
 
   //Konstruktor kopii
   Employee ( const Employee &);
 
   //Destruktor
   ~Employee ();
 
   void printEmployee ();
private:
   char name[25];
   int age;
   int gaffer;
};
 
Employee::Employee ()  {
age = gaffer = 0;
const char *k="pustoi";
int length = strlen(k);
length = length < 25 ? length : 24;
strncpy (name, k, length);
name[length] = '\0';
 ; }
 
 
void Employee::setEmployee (const char *n, int a, int g)
{
int length = strlen(n);
length = length < 25 ? length : 24;
strncpy (name, n, length);
name[length] = '\0';
age=a;
gaffer=g;
}
 
 
Employee::Employee (const char *n, int a, int g)
{
   setEmployee (n,a,g);
}
 
void Employee::printEmployee ()
{
 
cout <<"Imja slujashego: \n"  << name <<
"\nVozrast: " << '\n' << age << 
"\nStag: " <<'\n' << gaffer << '\n';
}
 
// Konstruktor kopii
Employee::Employee ( const Employee & obj)
    {
    memcpy(name,obj.name,24);
        age = obj.age;
        gaffer = obj.gaffer;
    }
 
 //Destruktor
   Employee:: ~Employee ()
   {
   cout <<"\n Destruktor rabotaet\n";
   }
 
int main ()
{
clrscr ();
Employee e;
e.printEmployee ();
cout << endl;
e.setEmployee ("Ivan", 21, 1);
Employee e2 ("Egor", 28, 5);
e2.printEmployee();
 
Employee e3(e2);
e3.printEmployee ();
getch ();
return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2016, 15:53
Ответы с готовыми решениями:

Почему не работает деструктор?
Собственно говоря, почему? #include &lt;iostream&gt; using namespace std; class Osoba{ public : char* imie; int wiek; ...

Почему деструктор не работает?
Вроде написал все правильно, а почему то деструктор не работает, данные HI не выводит, почему ? #include &lt;iostream&gt; using...

почему деструктор работает вначале?
#pragma once class Student { private: char* name; int course; public: Student(void); ~Student(void); ...

5
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.04.2016, 15:57
123c, А у меня работает.
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 46
07.04.2016, 16:05  [ТС]
GbaLog-,
Цитата Сообщение от GbaLog- Посмотреть сообщение
А у меня работает.
в конце выводит 3 раза "Деструктор работает"?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.04.2016, 16:11
123c, Да.
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 46
07.04.2016, 16:13  [ТС]
Цитата Сообщение от GbaLog- Посмотреть сообщение
Да.
а можете сделать скрин и скинуть мне, пожалуйста?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.04.2016, 16:17
Лучший ответ Сообщение было отмечено 123c как решение

Решение

123c, Могу вот сюда ссылку дать. http://rextester.com/EBK96744
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <stdio.h>
#include <string.h>
//#include <conio.h>
using namespace std;
 
class Employee{
public:
   //Konstruktor bez parametrov
   Employee();
 
   Employee (const char *n, int a, int g);
 
   //Konstruktor s parametrami
   void setEmployee (const char *, int, int);
 
   //Konstruktor kopii
   Employee ( const Employee &);
 
   //Destruktor
   ~Employee ();
 
   void printEmployee ();
private:
   char name[25];
   int age;
   int gaffer;
};
 
Employee::Employee ()  {
age = gaffer = 0;
const char *k="pustoi";
int length = strlen(k);
length = length < 25 ? length : 24;
strncpy (name, k, length);
name[length] = '\0';
 ; }
 
 
void Employee::setEmployee (const char *n, int a, int g)
{
int length = strlen(n);
length = length < 25 ? length : 24;
strncpy (name, n, length);
name[length] = '\0';
age=a;
gaffer=g;
}
 
 
Employee::Employee (const char *n, int a, int g)
{
   setEmployee (n,a,g);
}
 
void Employee::printEmployee ()
{
 
cout <<"Imja slujashego: \n"  << name <<
"\nVozrast: " << '\n' << age << 
"\nStag: " <<'\n' << gaffer << '\n';
}
 
// Konstruktor kopii
Employee::Employee ( const Employee & obj)
    {
    memcpy(name,obj.name,24);
        age = obj.age;
        gaffer = obj.gaffer;
    }
 
 //Destruktor
   Employee:: ~Employee ()
   {
   cout <<"\n Destruktor rabotaet\n";
   }
 
int main ()
{
//clrscr ();
Employee e;
e.printEmployee ();
cout << endl;
e.setEmployee ("Ivan", 21, 1);
Employee e2 ("Egor", 28, 5);
e2.printEmployee();
 
Employee e3(e2);
e3.printEmployee ();
//getch ();
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2016, 16:17
Помогаю со студенческими работами здесь

Почему деструктор работает неправильно?
на лабараторной столкнулся в проблемой. деструктор вызывается только один раз. #include &lt;cstring&gt; #include &lt;iostream&gt; ...

Почему создается виртуальный деструктор A, а в таблице виртуальных функций лежит деструктор B
Почему я делаю виртуальным деструктор A, а в таблице виртуальных функций лежит деструктор B?

Почему не отрабатывает деструктор?
class test { public: double *b; test(); ~test(); } test::test() {

Почему не вызывается деструктор?
Всем доброго времени суток! Подскажите пожалуйста - почему не вызывается деструктор при выполнении строки 48? ...

Почему вызывается деструктор?
Доброго времени суток. Написал такой код: struct O { virtual ~O() { cout &lt;&lt; &quot;hey&quot;; }...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru