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

Перегрузка операций '<<' и '>>' - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ немагу найти ошибку http://www.cyberforum.ru/cpp-beginners/thread177581.html
#include <stdio.h> #include <iostream> #include <math.h> #include <conio.h> #include <stdlib.h> using namespace std; void main() { float x, ans;
C++ Реализовать программу для хранения данных Реализовать программу для хранения данных о ценах на компьютерные комплектующие. Предусмотреть следующие поля: наименование, инвентарный номер, габариты. Для изделий, присутствующих на складе, указать цену, для остальных – наименование поставщика и ожидаемый срок поставки (количество дней). Реализовать добавление элемента в список. Предоставить возможность отображения всех элементов списка и... http://www.cyberforum.ru/cpp-beginners/thread177573.html
циклы for, while C++
for: Среди всех n-значных чисел (n = 1,2,3,4) указать те, сумма цифр которых равна данному числу k. while: Дано натуральное число n. Поменять порядок следования цифр в этом числе на обратный. (только не по цифрам отдельно менять и выводить,а само число целиком)
C++ нужен ли свой деструктор
Есть класс class Vetv { public: Vetv(int a,int b, int *ves); Vetv(); virtual ~Vetv(void); int nFrom; int nTo; int *Ves;
C++ Одномерный массив http://www.cyberforum.ru/cpp-beginners/thread177553.html
Нужно написать прогу с использованием статического и динамического распределения памяти. Дан массив действительных чисел. Если его первый элемент не является максимальным элементом массива, то создать новый массив, расположив в нем элементы так, чтобы вначале массива шла группа элементов, больших первого элемента исходного массива. Затем - сам этот элемент, потом - группа элементов, меньших...
C++ Вывести все простые числа до n должно быть так bool SimpleNumber(long int) int main() telo ........ подробнее

Показать сообщение отдельно
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
17.10.2010, 18:35  [ТС]     Перегрузка операций '<<' и '>>'
Да все практически осталось то же самое. Только дописал диструктор
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
#include <string.h>
#include <iostream>
using namespace std;
class List{
private:
    struct Element{     // структура, задающая элемент списка
        int key;        // поле для хранения данных
        Element *next;  // указатель на следующий элемент
    };
    Element* pbeg;//начало очереди
    Element* pend;//конец очереди
public:
    List(){
        Element* pbeg = 0;
        Element* pend = 0;
    }
    int operator <<(int a);
    int operator >>(int &a);
    void print();
    ~List(){
        if(pbeg){
            pend=pbeg;
            while (pbeg)
                pbeg=pbeg->next;
            delete pend;
            pend=pbeg;
        }
    }
}
int List::operator << (int a){
    Element* ph = new Element;
    ph->key = a;
    ph->next = 0;
    if (*pend!=0){
        (*pend)->next = ph;
        *pend = ph;
    }
    else{
        *pbeg = ph;
        *pend = ph;
    }
    return 0;
}
 
int List::operator>>(int &a){//сюда ты предлагал вставить вот это List& operator >>(int& val);
    int d = pbeg->key;
    Element* ph = pbeg;
    pbeg = pbeg->next;
    delete ph;
    return d;
}
 
void List::print(){
    while (pbeg != 0){
        Element *ph = pbeg;
        pbeg = pbeg->next;
        cout<<" "<<ph->key;
    }
}
 
int main(){
    setlocale(LC_ALL,"Russian");
    List w;
    int b,a;
    while(true){
        system("cls");
        cout<<"1) Заполнить очередь"<<endl;
        cout<<"2) Вывести на экран"<<endl;
        cout<<"3) Удалить элемент"<<endl;
        cout<<"0) Выход"<<endl;
        cout<<"Ввод: "; cin>>b;
        if (b == 1){
            system("cls");
            cout<<"Введите значение: ";
            cin>>a;
            w<<a;
            cin.clear();
            fflush(stdin);
            continue;
        }
        if (b == 2){
            system("cls");
            cout<<"Список: ";
            w.print;//здесь ошибка (из за точки), хочу что бы распечаталсся список
            while (true){
                cout<<"\n0) Выход: ";
                int z; cin>>z;
                if (z == 0) break;
                cin.clear();
                fflush(stdin);
                continue;
            }
            cin.clear();
            fflush(stdin);
            continue;
        }
        if (b == 3){
            //Здесь не знаю как сделать что бы из очереди удалился первый элемент
        }
        system("cls");
        if (b == 0) break;
 
    }
 
    return 0;
}
 
Текущее время: 06:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru