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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ фонарик http://www.cyberforum.ru/cpp-beginners/thread878552.html
Помогите пожалуйста с кодом фонарика!заранее огромное спасибо
C++ Функции в программе Здравствуйте, имею вот такую задачку, нужно её переделать по функциям. /* Дана целочисленная квадратная матрица. Опередить: 1) произведение элементов в тех строках, которые не содержат отрицательных элементов. 2) максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. */ #include <iostream.h> int main() { int N; // размер массива http://www.cyberforum.ru/cpp-beginners/thread878550.html
Splay-tree (написать программу, которая будет искать в файле сущности (целые числа) и заносить их в дерево) C++
Приветствую. Потребовалось написать программу, которая будет искать в файле сущности (целые числа) и заносить их в дерево, с последующим выводом всех найденных значений на экран. В процессе реализации возникло несколько вопросов: а) Для подобной цели было выбрано Splay-дерево. Является ли адекватным его выбор? Особенно с учётом, что есть большая вероятность, что на выходе будет сильно...
C++ Синтаксический анализатор
Помогите решить, пожалуйста. Вывести значение целочисленного выражения, заданного в виде строки S. Выражение определяется следующим образом (функция M воз-вращает максимальный из своих параметров, а функция m — минимальный): <выражение> ::= <цифра> | M(<выражение> , <выражение>) | m(<выражение> , <выражение>)
C++ Дана матрица смежности и неориентированный граф. Выяснить соседствуют ли две вершины с данными номерами с одной общей вершиной http://www.cyberforum.ru/cpp-beginners/thread878542.html
народ помогите пожалуйста написать программу на с++ на графы дана матрица смежности и неориентированный граф. выяснить соседствуют ли две вершины с данными номерами с одной общей вершиной.
C++ ACCESS_VIOLATION при решении задачи Здравствуйте!Тут решал одну простую задачу, но на dl.gsu.by она не проходит последний тест:не пройден 10-й тест. Решение вызвало ошибку ACCESS_VIOLATION Вот сама задача: Входной файл: input.txt Выходной файл: output.txt Время на тест: 2 секунды Ограничение на память: 16 МБ Задан неориентированный взвешенный граф G. В графе возможно наличие нескольких ребер между одной и той же парой... подробнее

Показать сообщение отдельно
levgen
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185

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

25.05.2013, 21:44. Просмотров 234. Ответов 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 - копию списка Р;
добавляет в конец списка Р инвертированный список Р.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru