Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
levgen
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
#1

Ошибка в проге при создании конструкторов,деструкторов - C++

25.05.2013, 21:44. Просмотров 240. Ответов 0
Метки нет (Все метки)

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <iostream> 
#include <math.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
struct spisok
{
    int inf;
    spisok *next;
    spisok *prev;
};
 
class spobj
{
 
    spisok *head;
    spisok *tail;
 
public:
spobj()
{
    head = NULL;
    tail = NULL;
}
void create (int inf)
{
    spisok *P=new spisok; 
    P->inf=inf; 
    P->prev=tail;
    P->next=NULL;
    if (head)
        tail->next=P;
    else
        head=P;
    tail=P;
}
 
void output ()
{
    spisok *P=head;
    while (P)
    {
        cout << P->inf << ' ';
        P=P->next;
    }
}
 
void mission1 ()
{
    spisok* P=head;
    int kol;
    int elem;
    bool prov;
    cout << "\nВведите искомый элемент";
    cout << "\n ";
    cin >> kol;
    cout << "\nВведите элемент, который его заменит";
    cout << "\n ";
    cin >> elem;
    prov=false;
    spisok* temp = head;
 
    while (temp != NULL)
    {
        if (temp->inf == kol)
        {
            prov=true;
            temp->inf=elem;
        } 
        temp=temp->next;
    }
    if (prov == false)
    {
        cout << "\nТакой элемент отсутствует";
    }
}
 
void mission2 ()
{   
    spobj newSP;
    spisok * temp = head;
    while(temp)
    {
        newSP.create(temp->inf);
        temp=temp->next;
    }
    newSP.output();
}
 
void mission3 ()
{ 
    spisok * temp = tail;
    while (temp) {
        create(temp->inf);
        temp = temp->prev;
    }
 
}
 
void remove()
{   
    spisok* A;
    while(head != NULL)
    {
        A=head;
        head=head->next;
        delete A;
    }
    tail=NULL;
}
};
 
int main()
{
    setlocale(LC_ALL,"rus");
    spobj op;
    cout << "\nВведите количество элементов ";
    int m=0;
    cin >> m;
    int k=0;
    for (int i=0; i<m; i++)
    {
        cout << "\nВведите число ";
        cout <<"\n ";
        cin >> k;
        op.create(k);
    }
    cout << "\nСписок введеных элементов ";
    cout << "\n";
    op.output();
    cout << "\n";
    cout << "\nЗадание №1 (Замена вхождения) ";
    op.mission1 ();
    op.output ();
    cout<<"\n";
    cout << "\n";
    cout << "\nЗадание №2 (Копия списка) ";
    op.mission2 ();
    cout <<"\n";
    cout << "\n";
    cout << "\nЗадание №3 (Инвертированный список) ";
    op.mission3 ();
    cout << "\n\n\n ";
    op.output ();
    op.remove ();
    cout << "\n ";
}
Суть задания такова: переделать данный код (он является кодом для предыдущей моей лабы, работает нормально, а теперь надо его переделать)
Создать не менее двух конструкторов, в том числе - по умолчанию, для объектов.
Создать конструктор копирования с динамическим выделением памяти, деструктор.
Добавить в программу инициализацию объектов с помощью различных конструкторов.
В конструкторе копирования применяйте указатель this, для динамического выделения памяти используйте new.
В деструкторе для освобождения памяти применяйте delete.


Как не пытался переделывать, вылазит ошибка. Помогите пожалуйста, кому не сложно. Заранее спасибо!)

Добавлено через 1 минуту
Еще забыл, что данный код делает эти деиствия( с прошлой лабы ):
Написать программу с встроенными функциями и классом, которые:
в списке Р заменяет первое вхождение списка Р1( если такое есть) на список Р2;
строит список Р1 - копию списка Р;
добавляет в конец списка Р инвертированный список Р.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2013, 21:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в проге при создании конструкторов,деструкторов (C++):

Вызов конструкторов/деструкторов при наследовании - C++
Объясните пожалуйста, как получается вывод на экран 2531 #include &lt;iostream&gt; class A { public: A(int n = 2) : m_i(n) {...

Непонятный вызов Деструкторов при создании списка - C++
Непонятный вызов Деструкторов при создании списка. #include &lt;iostream&gt; #include &lt;list&gt; #include &lt;vector&gt; #include &lt;string&gt; ...

Правильное использование конструкторов и деструкторов - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class Worker {public: ...

Задание с использованием конструкторов и деструкторов - C++
Нужна ваша помощь. Само задание: Разработать класс - СТУДЕНТ. В закрытой части определить данные: фамилия, номер зачетной книжки,...

Наследование - вызов конструкторов и деструкторов - C++
Делаю два класса - предок и потомок: class class_1_type { private: int t; public: class_1_type(int t_) { t = t_; cout &lt;&lt;...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2013, 21:44
Привет! Вот еще темы с ответами:

Разработка классов, создание конструкторов и деструкторов - C++
Здравствуйте, помогите решить следующее задание: Постpоить класс для pаботы со cтpоками. Класс должен включать следующие поля: массив...

Ошибки в программе с использованием конструкторов/деструкторов - C++
Приветы Есть код: #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;stdlib.h&gt;

Как реализовать набор конструкторов и деструкторов - C++
Делаю так: #include &lt;iostream&gt; class Time //начало объявления класса { public: //начало раздела public Time(int...

Оценить правильность использования конструкторов, деструкторов в коде - C++
Всем доброго времени суток. Не могли бы вы оценить правильность использования конструкторов,деструкторов и динамического выделения памяти...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru