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

Перегрузка инкремента ++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив указателей на методы класса http://www.cyberforum.ru/cpp-beginners/thread1108607.html
Есть несколько объектов разных классов. Каждый из этих классов имеет метод update. Параметры и возвращаемое значение одинаковы. Как создать массив указателей на эту update, чтобы в зависимости от какого-нибудь счётчика вызывать update у разных объектов? bool (*F)(bool) = {obj1.update, obj2.update, obj3.update}; вызывает ошибку 1>main.cpp(66): error C2440: инициализация: невозможно...
C++ Использование процедурной и объектно-ориентированной парадигм программирования Всем добрый вечер! Может кто помочь кодом для такой задачи: Построить плоские геометрические фигуры: 1.Круг (целочисленные координата центра окружности, радиус)-параметры 2.Прямоугольник (целочисленные координаты левого верхнего и правого нижнего углов), Для которых общим параметром является Цвет фигуры (перечислимый тип) = {красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый}... http://www.cyberforum.ru/cpp-beginners/thread1108598.html
Вывести на экран таблицу значений функции C++
Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1 Функция это сумма 20 при n=0, а дальше есть в программе. Программа работает, НО почему-то выводит таблицу не до 1.2, а до 2..помогите найти ошибку :cry: #include "stdafx.h" #include <iomanip> #include <conio.h> #include <iostream> #include <math.h>
Типы данных: есть ли универсальный тип, который может заменить все типы данных в Си? C++
Добрый вечер! Был бы очень признателен, если бы Вы помогли бы мне понять нижеследующие вопросы: 1. Можете ли на понятным для начинающего программиста языке объяснить роли и применения каждого типа данных в Си: int, float, double, char, bool? 2. Есть ли универсальный тип данных в языке Си, который мог бы заменить все основные типы данных? Зачем использовать float когда int тоже для цифр?...
C++ Сериализация и десериализация двусвязного списка http://www.cyberforum.ru/cpp-beginners/thread1108582.html
Всем доброго времени суток! Ребят помогите реализовать функции сериализации и десериализации двусвязного списка. Заранее спасибо
C++ Дан массив на 8 элементов. Дан массив на 8 элементов. Попросите пользователя заполнить его не нулевыми значениями. - Выведите на экран все введенные пользователем числа, которые повторяются 2 или больше раз. подробнее

Показать сообщение отдельно
Вероника99
4 / 4 / 1
Регистрация: 16.12.2013
Сообщений: 413
01.03.2014, 23:50  [ТС]     Перегрузка инкремента ++
Да,возможно)
queue.h
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
#include "stdafx.h"
#include <iostream>
#ifndef QUEUE_H
#define QUEUE_H
 
class queue
{
    
public:
    queue();
    ~queue();
    bool operator ++();
    bool operator --();
    bool queue::operator!();
    void print();   
    void suma();
    void size();
    friend ostream& operator <<(ostream &, const queue &);
private:
    int a[100];
    int start,end;
     int k; 
     int sum,dob;
     
};
 
#endif
queue.cpp

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
#include "stdafx.h"
#include "queue.h"
#include <iostream>
using namespace std;
 //enum { SIZE = 10 };
 
queue::queue()
{
 
    start=0;
    end=0;
    k=0;
    sum=0;
    dob=1;
}
ostream & operator<<(ostream &f,const queue &s)
{
    for (int i = s.start; i < s.end; i = (i + 1))
            f << s.a[i] << " ";
        return f;
}
bool queue::operator --()
{
 
    if ( start == end )
    {
        cout<<"Queue is empty!";
        return false;
    }
   
 
    start++;
    // cout<<"Element "<<a[start]<<"\n"; //start=кол-во елементов
    if(start==100)
        start=0;
    k=k-1;
    return true;
    
    
}
 
bool queue::operator ++()
{
    int n;
    cin>>n;
  /*  if ( 100== start )
    {
        cout<<"Queue is full!";
        return 0;
    }*/
    if(n!=0)
    {
        end++;
        if(end==100)
        end=0;
 
        a[end] = n;
        return true;
    }   
    return false;
}
bool queue::operator!()
{
    
    if(!(k==0));
    
    //  cout<<"FULL k="<<k;
    return true;
    
    return false;
}
 
void queue::suma()
{
        for(int i=start+1;i<end+1;i++)
    {
        sum+=a[i];
        dob*=a[i];
    }
    cout<<"\nGeneral count "<<k<<"\nSum="<<sum<<"\nDobytok "<<dob<<endl;
    
}
 
void queue::size()
{
    k=end-start;
 
}
void queue::print()
{
    for(int i=start+1;i<end+1;i++)
        cout<<" "<<a[i];
    
}
 queue::~queue()
{
    
}
main
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
#include "stdafx.h"
#include "queue.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    
    queue a; //object
    cout<<"Enter numbers:";
    for(int i=0;i<100;i++)
    { 
        if(!a++)
            break;
    }
    
    a.size();
    a.suma();
 
    a.print();
    a--;
    cout<<"\n Nov ";
    a.print();
    
    !a;
    cout<<a;
    return 0;
}
 
Текущее время: 00:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru