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

Перезагрузка operator - - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод полей класса после сравнения http://www.cyberforum.ru/cpp-beginners/thread303324.html
Проблема: (Нужно отыскать нужный фильм и вывести данные об нем.) Если еще конкретнее, то почему после успешного сравнения некорректно выводятся данные об фильме: название выводится правильно, а вот жанру фильма почемуто ставится в соотвествие данные следующего за ним поля ?? (Ход решения и 2 скрина с входными данными и результатом работы см.ниже). Имеется класс "фильмы" с полями назвиние,...
C++ консольная программа с выводом меню Помогите пожалуйста!!! Написать программу, которая выводит на экран меню: 1. Запись чисел в файл 2. Поиск в файле наименьшего числа и его порядкового номера 3. Выведения на экран содержимого файла 4. Выход из программы Программа работает в цикле и продолжает роботу пока не будет выбрано пункт меню 4. При виборе 1 пункту меню происходит запись введенных с клавиатуры чисел в файл с именем... http://www.cyberforum.ru/cpp-beginners/thread303304.html
В чем заблуждение? (структуры) C++
вообщем, программа, структура, сожержащая в себе информацию об авторах книг, их названии и тираже. нужно вывести самого популярного автора. выводит. Но если их несколько например Пушкин 20 книг и Лермонтов 20 книг, нужно написать, что самого популярного автора нет. привожу текст программы, ниже вопрос. #include<stdio.h> #include<string.h> typedef struct {char avtor; ...
C++ Вывести дату, следующую за указанной
Даны два целых числа: D(день) и M(месяц), определяющие правильную дату невысокосного года. Вывести значения D и M для даты, следующей за указанной.
C++ Получить все такие натуральные q, что n делится на qв квадрате и не делится на q в кубе http://www.cyberforum.ru/cpp-beginners/thread303289.html
Дано натуральное число n. Получить все такие натуральные q, что n делится на qв квадрате и не делится на q в кубе. В С++, желательно с комментариями, на сколько возможно, конечно=))спасибо!
C++ Сложение пар чисел в одномерном массиве Здравствуйте. Подскажите пожалуйста как можно реализовать такого вида код: дан массив из 4 чисел, найти все возможные суммы чисел. Например числа:1, 2 ,3, 4. Результат: 1+2 1+3 1+4 2+3 2+4 3+4 подробнее

Показать сообщение отдельно
Lotys
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 3

Перезагрузка operator - - C++

24.05.2011, 03:09. Просмотров 795. Ответов 12
Метки (Все метки)

Есть одна задача :
Одномерный массив а и b. Класс одномерный массив. Реализовать для объектов данного класса перезагрузку операции - (c=a-b)
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
#include <iostream.h>
#include <assert.h>
#include <conio.h>
 
class Vector
{
    friend ostream& operator << (ostream &, const Vector &);
public:
    Vector ();
    Vector (int);
    Vector (const Vector & );
    ~Vector();
    int &operator[](int);
    Vector &operator - ( const Vector &);
    Vector &operator = (const Vector &);
    const int Getsize();
    
private:
    int *ptr;
    int size;
 
};
//конструктор по умолчанию
Vector::Vector()
{
    size=0;
    ptr= new int[size];
    for (int i=0;i<=size;++i)
    {
        ptr[i]=0;
    }
}
//конструктор с параметрами
Vector::Vector(int newSize)
{
    if (0<=newSize)
        size=newSize;
    else cout<< "Size error" << newSize<<endl;
 
    ptr= new int[size];
    assert(ptr != 0);
    for (int i=0;i<size;i++)
    {
        ptr[i]=0;
    }
}
//конструктор копирования
Vector::Vector(const Vector &init)
{
    size=init.size;
    ptr=new int[size];
    assert(ptr!=0);
    for (int i=0;i<size;i++)
    {
        ptr[i]=init.ptr[i];
    }
}
//деструктор
Vector::~Vector()
{
    cout<<"Goodby Vectorcheg!"<<endl;
    delete [] ptr;
}
//перезагрузка операции индексации
int &Vector::operator [](int subscript)
{
    assert(0<=subscript && subscript<size);
    return ptr[subscript];
}
//перезагрузка операции унарного "-"
Vector& Vector::operator - ( const Vector &rigth)
{
    Vector Temp(size);
    int temp1=0;
    int temp2=0;
    
 
    for (int i=0; i<size; i++)
    {
        temp1=rigth.ptr[i];
        temp2=ptr[i];
        Temp[i]=temp1-temp2;
    }
    return Temp;
 
 
 
}
 
//перезагрузка операции пристваивания
Vector& Vector::operator =(const Vector &rigth)
{
    int temp=0;
    for (int i=0; i<size; i++)
    {
        temp=ptr[i];
        rigth.ptr[i]=temp;
    
    }
    return *this;
}
 
 
//определение размера массива
const int Vector::Getsize()
{
    return size;
}
 
 
//вывод объекта поток ostream
ostream& operator << (ostream & outStream,const Vector & outVector)
{
    if (outVector.size)
    {
        for (int i=0; i< outVector.size;i++)
            outStream<<"["<<outVector.ptr[i]<<"]";
    }
    else outStream<< "Vector zero size!...";
    return outStream;
}
 
 
       
 
 
 
int main ()
{
    int size;
    cout<<"input a[]"<<endl;
    cout<< "size a[]"; 
    cin>>size;
    Vector a(size);
    
    for (int i=0;i<a.Getsize();i++)
    {
        cout<<i<<":";
        cin>> a[i];
    }
    cout<<"input b[]"<<endl;
    cout<< "size b[]"; 
 
    Vector b(size);
    Vector c(size);
    for (int j=0;j<b.Getsize();j++)
    {
        cout<<j<<":";
        cin>> b[j];
    }
 
    cout<<"Vector a"<<a<<endl;
    cout<<"Vector b"<<b<<endl;
    cout<<"Vector c"<<c<<endl;
    c=a-b;
    cout<<"Vector a"<<a<<endl;
    cout<<"Vector b"<<b<<endl;
    cout<<"Vector c"<<c<<endl;
 
 
    _getch();
 
 
 
 
 
    return 0;
 
}
Но вот с перезагрузкой - ну не как не выходит.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru