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

Перегрузка operator+ для массивов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Бинарное дерево http://www.cyberforum.ru/cpp-beginners/thread1114729.html
Уважаемые знатоки! прошу вашей помощи.. перелазил весь форум (и не только форум). Есть конечно данная тема. Но вот как это все сделать мне не совсем понятно.. Помогите, пожалуйста. Даже не знаю с...
C++ Дан текстовый файл. Вывести первое слово текста наибольшей длины Такое слово должно выводиться с учетом знаков препинания, расположенных в начале и в конце слова. Помогите пожалуйста!:) http://www.cyberforum.ru/cpp-beginners/thread1114728.html
C++ Как вывести на экран третий символ строки?
Как вывести на экран третий символ строки?
C++ Как заполнить строку
Помогите заполнить строку #include <iostream> #include <conio.h> using namespace std; struct Stydent { std::string faculty;
C++ Программа на вектор http://www.cyberforum.ru/cpp-beginners/thread1114699.html
Написать программу, которая вводит и выводит вектор с введенной с клавиатуры размерностью. Вывести на экран разницу сумм все четных и нечетных элементов. Мы еще много не проходили, а находимся на...
C++ функция exit В общем все у меня работает, только вот не могу правильно завершить программу. Идет подсчет 2 переменных. И когда на экран выходит результат , программа спрашивает do you want quit? если ответ y -... подробнее

Показать сообщение отдельно
Острослав
0 / 0 / 0
Регистрация: 17.03.2013
Сообщений: 37

Перегрузка operator+ для массивов - C++

09.03.2014, 16:46. Просмотров 341. Ответов 5
Метки (Все метки)

Здравствуйте. Мне надо решить следующую задачу: сложить два массива в один, используя перегрузку операторов(перегрузить operator+).
У меня есть заголовочный файл с необходимыми данными и функцией, .cpp-файл реализацией функции и файл main.cpp
В чем вся проблема: я складываю эти массивы, но складываю их во временную переменную, которая исчезает после выполнения функции и в итоге ничего не складывается. Как это можно обойти?


procedures.h
C++ (Qt)
1
2
3
4
5
6
7
8
#ifndef PROCEDURES
#define PROCEDURES
struct mas{
    int *a;
    int count;
};
mas& operator+ (const mas& x, const mas& y);
#endif
procedures.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
#include "procedures.h" 
mas& operator+ (const mas& x, const mas& y){
    mas z;
    z.a = new int (x.count+y.count);
    for (int i=0;i<x.count;i++)
        z.a[i] = x.a[i];
    for (int i=x.count;i<y.count;i++)
        z.a[i] = y.a[i];    
    return z;
}
main.cpp
C++ (Qt)
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 "procedures.h"
#include <stdio.h>
void main(){
    mas mas1,mas2,mas3;
    mas2.count = 25;
    mas3.count = 50;
    mas1.count = mas2.count+mas3.count;
    mas1.a = new int[mas1.count];
    mas2.a = new int[mas2.count];
    mas3.a = new int[mas3.count];
    for (int i=0; i<mas1.count;i++)
        mas1.a[i]=0;
    for (int i=0; i<mas2.count;i++)
        mas2.a[i]=i;
    for (int i=0; i<mas3.count;i++)
        mas3.a[i]=i;
 
    mas1 = mas2 + mas3;
 
    for (int i=0; i<mas1.count;i++)
        printf("%0.0f",mas1.a[i]);
    system( "pause" );
    delete mas1.a;
    delete mas2.a;
    delete mas3.a;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru