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

Перегрузка операции + для сложения элементов динамического массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не распознает String http://www.cyberforum.ru/cpp-beginners/thread958875.html
Не распознает String. Как исправить? #include "stdafx.h" #include <cstdio> #include <cstdlib> #include <iostream> #include <string.h> using std::cout; using std::cin; using std::endl;
C++ Удаление дерева каталогов со всеми файлами Как, за один проход? http://www.cyberforum.ru/cpp-beginners/thread958874.html
Чтение строки из файла и задание значений переменных C++
Доброго времени суток, имеется текстовый файл со строкой формата "B1=1 B2=2 B3=3 ..." Как наименее ресурсоёмко пропарсить эту строку, присванивая значения переменных int x1, x2, x3... соответствующими значениями из тектового файла, т.е. чтобы x1=1, x2=2 ,x3=3 и т д?
C++ Между n и 2n найти все пары простых чисел, разница которых равна 2
Нужна написать программу на с++ для решение задачи. Между n и 2n найти все пары простых чисел, разница которых равна 2. желательно с комментариями что и для чего пишем
C++ Ошибка: функция не принимает 1 аргумент http://www.cyberforum.ru/cpp-beginners/thread958862.html
Извините за нубский вопрос, но как с этого работающего кода double a,b; char op; cin >> a >> op >> b; switch(op){ case '+': cout << "Результат: " << a+b << endl << endl; break; case '-': cout << "Результат: " << a-b << endl << endl; break; case '*': cout << "Результат: " << a*b << endl << endl; break; case '/': try { if(!b) throw b;
C++ Структура: Для заданного автора вывести на экран его самую раннюю книгу и самую последнюю - по году издания. Дан массив записей, содержащий сведения о книгах: фамилия автора, название книги, год издания книги. Для заданного автора найти и вывести на экран его самую раннюю книгу и самую последнюю по году издания. На языке С++.Помогите пожалуйста! подробнее

Показать сообщение отдельно
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
21.09.2013, 01:08     Перегрузка операции + для сложения элементов динамического массива
Написал класс, создаваемый объект является динамическим массивом заполняемый рандомом по умолчанию, или через cin, пытаюсь описать перегрузку операции +, чтобы можно было складывать разные объекты этого класса , т.е. сложение элементов с одинаковыми индексами, как это осуществить не понимаю...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iomanip>
using namespace std;
class DateArray
{
    friend ostream &operator<<(ostream &, const DateArray &);
    friend istream &operator>>(istream &, DateArray &);
    public:
        DateArray(int);
        ~DateArray();
     //   DateArray operator+(DateArray); // это инициализация функции оператора+
        void print();
        void setArray();
    int m;
    int *a;
    private:
    int s;
    static int counterArray;
};
 
#endif // DATEARRAY_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
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
#include "DateArray.h"
#include <iostream>
#include <stdlib.h>
#include <iomanip>
 
using namespace std;
int DateArray::counterArray=0;
//////////////////////// перегрузка операторов
 
//сама функция описывающая это
/*DateArray &operator+(DateArray &value)  // должно быть (DateArray &value1,DateArray &value2) по идее
{
    for (int i=0;i<value.m;i++)
    {
    // ?????
    }
    // return ????
}*/
 
 
ostream &operator<<(ostream &output,const DateArray &coutDateArray)
{
    output<<"Cout for Array "<<coutDateArray.s<<endl;
    for (int i=0;i<coutDateArray.m;i++)
    output<<coutDateArray.a[i]<<endl;
    return output;
}
 
istream &operator>>(istream &input, DateArray &cinDateArray)
{
    for (int i=0;i<cinDateArray.m;i++)
    input>>cinDateArray.a[i];
}
//////////////////////// КОНСТУКТОР ///////////////////////
DateArray::DateArray(int x)
:m(x)
{
a = new int[m];
counterArray++;
s = counterArray;
}
 
////////////////////////  ФУНКЦИИ   ///////////////////////
 
 
void DateArray::print()
{
cout<<"\nArray "<<s<<endl;
for (int i=0;i<m;i++)
cout<<i+1<<") "<<a[i]<<endl;
}
 
 
void DateArray::setArray()
{
    for (int i=0;i<m;i++)
       a[i]=rand()%99;
}
 
 
////////////////////////  ДЕСТРУКТОР   ///////////////////////
DateArray::~DateArray()
{
    delete []a;
}
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include "DateArray.h"
using namespace std;
 
int main()
{
    int x;
    srand(time(0));
    cout<<"Enter line array"<<endl;
    cin>>x;
 
    DateArray myDateArray1(x);
    DateArray myDateArray2(x);
    DateArray myDateArray3(x);
    myDateArray1.setArray();
    myDateArray2.setArray();
 
    cin>>myDateArray3;
 
    cout<<myDateArray1<<endl;
    cout<<myDateArray2<<endl;
    cout<<myDateArray3<<endl;
 
    return 0;
Добавлено через 47 минут
=((
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru