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

Не могу найти ошибку. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Калькулятор комплексных чисел. Помогите плз найти ошибки http://www.cyberforum.ru/cpp-beginners/thread448333.html
Написала програмку для работы с комплексными числами, с С++ знакома поверхностно и прога эта не работает :gsad: подскажите где я ошиблась, буду признательна)) Добавлено через 16 секунд # include <iostream> # include <math.h> using namespace std; struct kompl { float x,y;}; kompl summ (kompl a, kompl b)
C++ Работа с битовыми операциями Реализовать функции шифрования и дешифрования строк. Принцип шифрования: на четыре бита слева каждого символа нало-жить 4-ёх битную маску (операция XOR), затем первый и третий би-ты слева поменять местами. После шифрования напечатать коды символов зашифрованной строки и полученную строку. Дешифровать результат и убедиться, что строка стала равна исходной. http://www.cyberforum.ru/cpp-beginners/thread448323.html
Из элементов массива m сформировать массив n того же размера по правилу C++
1)Дан массив. Составить программу расчета квадратного корня из любого элемента массива, а также расчета среднего арифметического двух любых элементов массива. 2)Дан массив а. Определить знакоперемённую сумму а — а + а —а +... Условный оператор и операцию возведения в степень не использовать. 3)Из элементов массива m сформировать мас¬сив n того же размера по правилу: неотрицательные...
"Блоковый ввод-вывод" C++
Постановка задачи Сформировать двоичный файл из элементов, заданной в варианте структуры, распечатать его содержимое, выполнить удаление и добавление элементов в соответствии со своим вариантом, используя для поиска удаляемых или добавляемых элементов разработанную функцию. Формирование, печать, добавление и удаление элементов оформить так же в виде функций. Предусмотреть сообщения об...
C++ Вывод данных в таблицу в ворд http://www.cyberforum.ru/cpp-beginners/thread448273.html
Лаба по сис анализу на поиск минимума функции на отрезке разными методами. Сам поиск я сделал, осталось засунуть всё в отчёт. Отчёт представляется в виде ворд документа, где есть титульник, задание, код программы и таблица итераций. С таблицей и связан вопрос. Есть у меня к примеру 3 переменные, за 2 итерации у них было 6 значений. Как эти значения запихнуть в вордовскую таблицу? (т.е....
C++ declaration of 'std::string s' shadows a parameter <?php echo 'Приветствую тебя, '.$user->get('username') ?> <?php endif ?> О многоуважаемый, зри в void CH. #include <cstdlib> #include <iostream> #include <fstream> #include <string> #include <sstream> #include <stdio.h> подробнее

Показать сообщение отдельно
HardMorg
2 / 25 / 3
Регистрация: 29.08.2010
Сообщений: 204
18.02.2012, 20:58     Не могу найти ошибку.
eaglecrazy,
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
#include <iostream>
 
using namespace std; 
//template<typename T> //строка номер 5 на которую жалуется компилятор
//class ListNode;
 
 
 
template<typename T>
class ListNode {
 //  friend class List<T>;
 
    public:
        ListNode()
        {
            next = NULL;
        };
 
        T getData() {
            return data;
        }
        
        ListNode* getNext() {
            return next;
        }
public:
 
        ListNode *next;
        T data;
};
 
 
template<typename T>
class List
{
    public:
        List() {};//
        ~List() {};//
        void inputFirst(const T &);//
        void deleteFirst();
        void inputLast(const T &);//
        void deleteLast();
        bool isEmpty() const;//
        void printList()const;//
    void printList2(char = 0)const {
        if(this->isEmpty()){
                cout << "List is empty" << endl;
                 return;
            }
 
            ListNode<char> *ptr = first;
 
            while(ptr != NULL)
            {
                cout << ptr->data;//строка 97 на которую жалуется компилятор
                ptr = ptr->next;//строка 98 на которую жалуется компилятор
            }
            cout << endl;
        }
 
        List<T> & operator=(const List<T>&);
        List<T> & operator+(const List<T> &);
 
    private:
        ListNode<T> *first;
        ListNode<T> *last;
        ListNode<T> *newNode(const T &);//
};
 
 
 
template<typename T>
void List<T>::printList() const
{
    if(this->isEmpty())
    {
        cout << "List is empty" << endl;
        return;
    }
 
    ListNode<T> *ptr = first;
 
    while(ptr != NULL)
    {
        cout << ptr->data << endl;
        ptr = ptr->next;
    }
}
Так не пойдет? Понятно что это сырой вариант
я привык всегда реализовывать функции в классе)

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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
#include <iostream>
 
class out_of_range : public std::exception {
 
public:
    out_of_range() { }
};
 
template<class Node, class T>
class iterator {
    
private:
    Node *current;
    
public:
    iterator(Node *node):current(node) { }
    
    void operator++() {
 
        if(!current)
            throw new out_of_range();
 
        current = current->getNext();
    }
 
    bool operator == (iterator const &other) {
 
        return current == other.current;
    }
 
    bool operator !=(iterator const &other) {
        
        return current != other.current;
    }
 
    Node* operator->() {
 
        return current;
    }
};
 
 
template<class T>
class node {
 
private:
    T value;
    node *next;
    node *prev;
public:
    node(T value) {
        next = NULL;
        prev = NULL;
        this->value = value;
    }
 
    node* getNext() {
        return next;
    }
 
    node* getPrev() {
        return prev;
    }
 
    void setPrev(node *n) {
        prev = n;
    }
    void setNext(node *n) {
        next = n;
    }
    T getValue() {
        return value;
    }
};
        
template<class T> 
class list {
 
public:
    typedef iterator<node<T>, T> iterator;
 
private:
    node<T> *root;
 
public:
    list():root(NULL) { };
 
    void push_back(T value) {
 
        if(root) {
 
            node<T> *temp = root;
            while(temp->getNext()) {
                temp = temp->getNext();
            }
            temp->setNext(new node<T>(value));
            temp->getNext()->setPrev(temp);
 
        }else {
            root = new node<T>(value);
        }
 
    }
    
    T pop_back() {
 
        if(!root) 
            throw new out_of_range();
 
        if(!root->getNext()) {
            T value = root->getValue();
            delete root;
            root = NULL;
            return value;
        } else {
 
            node<T> *del = root;
            while(del->getNext()) {
                del = del->getNext();
            }
 
            T value = del->getValue();
            del->getPrev()->setNext(NULL);
            delete del;
            return value;
        }
    }
 
    void push_front(T value) {
 
        if(!root) {
            root = new node<T>(value);
        } else {
 
            node<T> *newnode = new node<T>(value);
            newnode->setNext(root);
            root->setPrev(newnode);
            root = newnode;
        }
    }
 
    T pop_front() {
 
        if(!root) 
            throw new out_of_range();
 
        if(!root->getNext()) {
            T value = root->getValue();
            delete root;
            root = NULL;
            return value;
        }else {
 
            T value = root->getValue();
            node<T> *newroot = root->getNext();
            delete root;
            root = newroot;
            root->setPrev(NULL);
            return value;
        }
    }
 
        
    iterator begin() {
 
        return iterator(root);
    }
 
    iterator end() {
        return iterator(NULL);
    }
 
    ~list() {
 
        while(root) {
 
            node<T> *del = root;
            root = root->getNext();
            delete del;
        
        }
    }
 
};
 
 
 void main() {
 
 
    list<int> integer;
 
    integer.push_back(1);
    integer.push_back(2);
    integer.push_back(3);
    integer.push_back(4);
    integer.push_front(5);
    integer.push_front(6);
 
    std::cout << integer.pop_back() << std::endl;
    std::cout << integer.pop_back() << std::endl;
    std::cout << integer.pop_front() << std::endl;
    std::cout << integer.pop_back() << std::endl;
    std::cout << integer.pop_back() << std::endl;
    
 
    for(list<int>::iterator it = integer.begin(); it != integer.end(); it++)
        std::cout << it->getValue() << std::endl;
 
}
я тоже пытался делать свой лист может поможет
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
template<>
void List<char>::printList() const
{
    if(isEmpty())
    {
        cout << "List is empty" << endl;
        return;
    }
 
    ListNode<char> *ptr = first;
 
    while(ptr != NULL)
    {
        cout << ptr->data;//строка 97 на которую жалуется компилятор
        ptr = ptr->next;//строка 98 на которую жалуется компилятор
    }
    cout << endl;
}
 
 
template<typename T>
void List<T>::printList() const
{
    if(isEmpty())
    {
        cout << "List is empty" << endl;
        return;
    }
 
    ListNode<T> *ptr = first;
 
    while(ptr != NULL)
    {
        cout << ptr->data << endl;
        ptr = ptr->next;
    }
}
по моему функции так не перегружаются, должны отличатся типами параметров.
Даже не понятно зачем тебе такая функция если первая тоже самое
 
Текущее время: 19:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru