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

Дописать конструктор и деструктор для класса

06.04.2016, 01:57. Показов 864. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста написать конструктор копии и деструктор, а также вызвать их, чтобы деструктор выводил на экран "работает"

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
#include <iostream.h>
#include <conio.h>
#include <string.h>
 
class Employee{
public:
   //Konstruktor bez parametrov
   Employee();
 
   //Konstruktor s parametrami
   void setEmployee (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;
char *k="pustoi";
int length = strlen(k);
length = length < 25 ? length : 24;
strncpy (name, k, length);
name[length] = '\0';
 ; }
void Employee::setEmployee (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;
}
 
void Employee::printEmployee ()
{
 
cout <<"Imja slujashego: " << endl << name << endl <<
"Vozrast: " << endl << age << endl <<
"Stag: " <<endl << gaffer << endl;
}
 
main ()
{
clrscr ();
Employee e;
e.printEmployee ();
cout << endl;
e.setEmployee ("Ivan", 21, 1);
e.printEmployee();
getch ();
return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2016, 01:57
Ответы с готовыми решениями:

Для класса задать конструктор и деструктор
Ребята,нужна помощь в написании программы. Для класса задать конструктор(для выделения памяти,открытия файлов,задания начальных значений...

Нужно ли прописывать конструктор и деструктор для чисто виртуального абстрактного класса
Всем привет! Порылся в интернете, но не смог найти конкретного ответа на свой вопрос. Возможно я просто не смог грамотно сформулировать...

Конструктор и деструктор анонимного класса
Здравствуйте. Есть ли в С++ такая возможность? Очень нужна именно такая реализация класса, но если это невозможно, буду думать.

3
27 / 26 / 16
Регистрация: 02.12.2013
Сообщений: 79
06.04.2016, 13:42
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define NAMESIZE    25
    //Konstruktor s parametrami
    Employee (char *n, int a, int g):
        age(a),gaffer(g)
    {
        memcpy(name,n,NAMESIZE);
    };
 
    //Конструктор копирования
    Employee ( const Employee & obj)
    {
        memcpy(name,obj.name,NAMESIZE);
        age = obj.age;
        gaffer = obj.gaffer;
    }
 
        //Destruktor
    ~Employee (){};
main:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main ()
{
    Employee e;
    e.printEmployee ();
    cout << endl;
    //e.setEmployee ("Ivan", 21, 1);
    Employee e2("Ivan", 21, 1);
    e2.printEmployee();
 
    Employee e3(e2);
    e3.printEmployee();
    getch ();
    return 0;
}
В "конструктор с параметрами" можно дописать дефолтные значения.
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 46
06.04.2016, 21:53  [ТС]
Цитата Сообщение от olper Посмотреть сообщение
main:
Правильно ли я написала, а то выдаёт 2 ошибки.

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
#include <iostream.h>
#include <conio.h>
#include <string.h>
 
class Employee{
public:
   //Konstruktor bez parametrov
   Employee();
 
   //Konstruktor s parametrami
   void setEmployee (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;
char *k="pustoi";
int length = strlen(k);
length = length < 25 ? length : 24;
strncpy (name, k, length);
name[length] = '\0';
 ; }
void Employee::setEmployee (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;
}
 
void Employee::printEmployee ()
{
 
cout <<"Imja slujashego: " << endl << name << endl <<
"Vozrast: " << endl << age << endl <<
"Stag: " <<endl << gaffer << endl;
}
 
// Konstruktor kopii
Employee ( const Employee & obj)
    {
        memcpy(name,obj.name,NAMESIZE);
        age = obj.age;
        gaffer = obj.gaffer;
    }
 
 //Destruktor
    ~Employee (){};
 
main ()
{
clrscr ();
Employee e;
e.printEmployee ();
cout << endl;
e.setEmployee ("Ivan", 21, 1);
Employee e2 ("Egor", 21, 1);
e2.printEmployee();
 
Employee e3(e2);
e3.printEmployee ();
getch ();
return 0;
}
Добавлено через 32 секунды
Цитата Сообщение от olper Посмотреть сообщение
main:
Правильно ли я написала, а то выдаёт 2 ошибки.

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
#include <iostream.h>
#include <conio.h>
#include <string.h>
 
class Employee{
public:
   //Konstruktor bez parametrov
   Employee();
 
   //Konstruktor s parametrami
   void setEmployee (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;
char *k="pustoi";
int length = strlen(k);
length = length < 25 ? length : 24;
strncpy (name, k, length);
name[length] = '\0';
 ; }
void Employee::setEmployee (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;
}
 
void Employee::printEmployee ()
{
 
cout <<"Imja slujashego: " << endl << name << endl <<
"Vozrast: " << endl << age << endl <<
"Stag: " <<endl << gaffer << endl;
}
 
// Konstruktor kopii
Employee ( const Employee & obj)
    {
        memcpy(name,obj.name,NAMESIZE);
        age = obj.age;
        gaffer = obj.gaffer;
    }
 
 //Destruktor
    ~Employee (){};
 
main ()
{
clrscr ();
Employee e;
e.printEmployee ();
cout << endl;
e.setEmployee ("Ivan", 21, 1);
Employee e2 ("Egor", 21, 1);
e2.printEmployee();
 
Employee e3(e2);
e3.printEmployee ();
getch ();
return 0;
}
0
27 / 26 / 16
Регистрация: 02.12.2013
Сообщений: 79
07.04.2016, 12:41
Цитата Сообщение от 123c Посмотреть сообщение
Правильно ли я написала
нет.

Цитата Сообщение от 123c Посмотреть сообщение
C++
1
e.setEmployee("Ivan", 21, 1);
это вызов метода уже созданного объекта е.
Имя конструктора должно совпадать с именем класса.

конструкторы и деструктор, который я написал, должны быть внутри класса,
если писать реализации вне класса надо добавить к имени в начале
C++
1
Employee::
Цитата Сообщение от 123c Посмотреть сообщение
а то выдаёт 2 ошибки.
кабы знать ещё какие, а не только их количество - это усиливает способность читать мысли )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2016, 12:41
Помогаю со студенческими работами здесь

Конструктор (деструктор) у класса, не имеющего тип
Можно ли объявить и определить конструктор у класса, который не имеет тип? То есть у меня в программе всего 1 экземпляр этого класса,...

Зачем нужны конструктор и деструктор класса?
вот задание: Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в динамической области памяти....

Создание класса с перегрузкой операторов конструктор и деструктор
Создать класс времени (Time) содержащий закрытую переменную-член хранящую целое значение времени интервала в секундах. Интерфейс класса...

Конструктор и деструктор для cout
Здарова! нужно решить задачу: есть код: int main() { cout &lt;&lt;&quot;Hellow world&quot;&lt;&lt;endl; } нужно без модифицирования...

Можно ли Конструктор и Деструктор вызывать как метод класса?
Собственно вопрос: можно ли Конструктор и Деструктор вызывать вручную, как обычный метод класса? Например, я хочу управлять...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru