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

Конструктор-копирования связного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread945160.html
Никак не могу найти ошибку. Задание: разработать класс последовательность целых чисел, перегрузить дважды для оператор минус, 1ая перегрузка принимает целое число (в результирующем классе удаляются все элементы равные целому числу), 2ая-перегрузка минуса для экземпляра класса mas (удаляются все элементы 2ого экземпляра) #include <iostream> #include<stdio.h> #include <string>
C++ Реализовать код Само задание: разработать класс последовательность целых чисел, перегрузить для него оператор минус, перегрузка принимает целое число (в результирующем классе удаляются все элементы равные целому числу) как мне это реализовать? #include <iostream> #include<stdio.h> #include <string> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread945152.html
C++ Паттерны метапрограммирования шаблонов
Нигде не могу найти литературу по паттернам метапрограммирования шаблонов, александреску не предлагать)) конкретно не могу понять как решить такую ситуацию class MTop{}; template <class Child> class MainObject { public: Child * Add(char const* param); void SetParam(char const * param) {/*some code*/}
C++ Закрыть методы класса, от которого идет наследование
Здравствуйте. Подскажите пожалуйста, как можно сделать так, чтобы некоторые методы класса, от которого идет наследование другого классы, были запрещены для использования. Приведу пример: Если класс односвязанного списка: class Element{ public: value_t value; Element * next;
C++ Аргументы командной сроки http://www.cyberforum.ru/cpp-beginners/thread945133.html
Здравствуйте,я начал изучать аргументы командной строки, и решил попробовать написать не большую программу. #include <iostream> using namespace std; int main(int num,char* command) { if(command == "start")
C++ Выдает ошибку в компиляторе Здавствуйте пишу вот такой код int main() { int chislo1; int chislo2; int summa; cout << "Vvedite pervoe chislo: " << endl; cin >> chislo1; подробнее

Показать сообщение отдельно
mrKi
2 / 2 / 0
Регистрация: 01.08.2013
Сообщений: 60
28.08.2013, 23:57     Конструктор-копирования связного списка
Подскажите,как реализовать конструктор копирования для этого списка
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
class part
{
      public:
             //ГЉГ®Г*ñòðóêòîð,äåñòðóòîð,ГЄГ®Г*ñòðóêòîð êîïèðîâГ*Г*ГЁГї.
             part()
             {
                   item=0;
                   next=NULL;
             }
             part(int i,part*n=NULL)
             {
                   next=n;
                   item=i;
             }
             ~part(){}
             part(part&src)
             {
                           src.item=this->item;
                           src.next=this->next;
             }
             // Ìåòîä âûâîäÿùèé Г*Г* ГЅГЄГ°Г*Г* Г§Г*Г*Г·ГҐГ*ГЁГҐ îáúåêòГ*.
             void showItem(){cout<<"Item="<<item<<endl;}
             
             part*next;
             int item;
};
class partList
{
      public:
             //ГЉГ®Г*ñòðóòîðû,ГЄГ®Г*ñòðóêòîð êîïèðîâГ*Г*ГЁГї,äåñòðóêòîð.
             partList(int i)
             {
                          last=new part;
                          first=new part;
                          part*temp=new part(i,last);
                          temp->next=last;
                          first->next=temp;
                          countOfPart++;
             }
             partList()
             {
                       last=new part;
                       first=new part;
                       first->next=last;
             }
             partList(partList &src)
             {
                               this->first=new part;
                               if(src.getCountOfPart()) 
                               {
                                           int i=src.getCountOfPart();
                                           part *temp=src.first->next;
                                           this->first=new part;
                                           this->first->next=new part(temp->item);
                                           i--;
                                           part *temp2=this->first->next;
                                           while(i)
                                           {
                                                   temp=temp->next;
                                                   temp2->next=new part(temp->item);
                                                   temp2=temp2->next;
                                                   i--;
                                           }
                               }
             }
            //Методы класса
             int getCountOfPart(){return countOfPart;}
             ~partList()
             {
                        part *temp=first->next;
                        part *wtd;
                        while(temp->next)
                        {
                                         wtd=temp;
                                         temp=temp->next;
                                         delete wtd;
                        }
             }
             void add(int i)
             {
                  part *temp=first->next;
                  while(temp->next) temp=temp->next;
                  temp->item=i;
                  last=new part;
                  temp->next=last;
                  countOfPart++;
             }
             void add(partList &wta)
             {
                  part *temp=wta.first->next;
                  while(temp->next) 
                  {
                  this->add(temp->item);
                  this->countOfPart++;
                  temp=temp->next;
                  }
             }
             void show()
             {
                  part *temp=first->next;
                  while(temp->next)
                  {
                                   temp->showItem();
                                   temp=temp->next;
                  }
             } 
             
    private:
              part*first;
              part*last;
              int countOfPart;
};
Добавлено через 59 минут
Написал вот это,но когда программа доходит до строчки в котором он используется вылетает ошибка
C++
1
2
3
4
5
  partList(partList &src)
             {
                     for(part *temp=src.first->next;temp->next;temp=temp->next)
                     add(temp->getItem());          
             }
Добавлено через 10 минут
Проблема решена. Надо было только выпить чашку кофе и немного подышать свежим воздухом Тебя можно удалить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru