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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Где могут быть ошибки? http://www.cyberforum.ru/cpp-beginners/thread858619.html
#include <stdio.h> void main () { int a, b, c, d; printf ("Enter the quality of seconds\n"); scanf ("%d", &a); if (a<60) {printf ("%d sec\n", a);} else if (60<a<3600)
C++ карточная игра (SOS) Помогите пожалуйста дописать карточную игру #include <iostream> #include <Windows.h> #include <math.h> #include <conio.h> using namespace std; void main () { SetConsoleOutputCP(1256); http://www.cyberforum.ru/cpp-beginners/thread858613.html
C++ Двоичный В/В объектов string. Ошибки
Как правильно выводить эти объекты в двоичный файл? В таком случае выскакивают ошибки после завершения программы. int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); string tmp, tmp2; cin >> tmp;
Многопоточность и ститичность =) C++
программка большая и архитектура такая: class cApp : public cApplication { private: ... public: cApp(); BOOL Init();
C++ Вывод символов зная код http://www.cyberforum.ru/cpp-beginners/thread858600.html
подскажите пожалуйста, вот есть код 3,4,5,6 -это символы масти карт, как вывести эти символы?
C++ Как найти минимальный элемент матрицы? Подскажите пожалуйста, как научить данную программу, которая умножает 2 введенные с клавиатуры матрицы, находить и выводить на экран минимальный элемент полученной матрицы S? #include "stdafx.h" #include <iostream> using namespace std; int main () { setlocale (LC_ALL, "RUS"); подробнее

Показать сообщение отдельно
bestpalyer1
-1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 47
07.05.2013, 21:03  [ТС]     Перегрузка += для множества реализованного через массив
Цитата Сообщение от anmartex Посмотреть сообщение
bestpalyer1, дело совсем не в перегрузке. 10-ая строка - цикл выполняется до length, 16 строка - length++, т.е. i у вас будет принимать значение больше чем реальный размер data. И к тому же у вас почему-то length на 17-ой строчке ещё раз инкрементируется.
А если так?
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
//Перегрузка оператора +=
 const massiv& massiv::operator+=(const massiv& dub) 
 {
      int f=0,old_length=length;
      size=size+dub.size;
      udata = new char [size];
 
      for(int i=0;i<length;i++)
      {udata[i]=data[i];}
 
      for(int i=0;i<length;i++)
      {
          for(int j=0;j<dub.length;j++)
          {
              f=0;
              if(dub.data[j]!=data[i]) 
              {
                  f=1;
              }
              if(f==1)
              {udata[length++] = dub.data[j];
               old_length++;
              }
          }
      }
      
      delete [] data;
      data = new char [size];
 
      for(int i=0;i<old_length;i++)
      {data[i]=udata[i];}
 
      delete [] udata;
      return *this;
 }
 
Текущее время: 23:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru