Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
kbu
2 / 2 / 1
Регистрация: 30.07.2010
Сообщений: 76
1

Прокомментируйте пожалуйста код

18.02.2011, 11:57. Просмотров 439. Ответов 2
Метки нет (Все метки)

Объясните пожалуйста как работает данный кусок кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template <typename T>
Deque <T> Deque<T>::operator + (const Deque<T> &L){
 
Deque Result(*this);
 
   Elem<T> * temp = L.Head;
 
   while(temp != 0)
   {
      Result.AddTail(temp->data);
      temp = temp->next;
   }
 
   return Result;
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2011, 11:57
Ответы с готовыми решениями:

Прокомментируйте пожалуйста код
// Zadacha1.1.cpp: определяет точку входа для консольного приложения....

Прокомментируйте код пожалуйста
#include&lt;iostream.h&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt;...

Прокомментируйте пожалуйста код header.h
header.h #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt;...

Прокомментируйте, пожалуйста, код программы.
Доброго дня всем! Перед Вами - 2 программы - 1 шифрует текст методом...

Написал тетрис. Прокомментируйте код пожалуйста )
Программа полностью готова. Все как в тетрисе работает. Немного мигает, не знаю...

2
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
18.02.2011, 16:20 2
kbu, здесь происходит перегрузка оператора сложения для шаблонного класса Deque. Если компилятор встретит в коде конструкцию вроде D1 + D2 (при этом D1 и D2 - экземпляры класса Deque), то она будет преобразована в вызов метода класса Deque для экземпляра D1 и будет иметь вид D1.operator+(D2). Сам код:

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
template <typename T>
Deque <T> Deque<T>::operator + (const Deque<T> &L)
{
    // Инициализируем временный объект Result класса Deque содержимым объекта,
    // для которого вызвана функция operator+
    Deque Result(*this);
 
    // Полагаю, что существует структура или класс Elem, которая представляет
    // элемент дека. Мы создаём указатель на такую структуру и инициализируем
    // его адресом начала дека L, который передаётся в operator+ в качестве
    // аргумента
    Elem<T> * temp = L.Head;
 
    // В цикле, пока указатель temp не станет нулевым. Нулевым он станет тогда,
    // когда мы доберёмся до конца дека L
    while(temp != 0)
    {
        // Вызываем для Result метод AddTail, который, как я полагаю, добавляет
        // очередной элемент в конец дека и инициализирует его значением,
        // которое лежит в элементе, на который указывает temp
        Result.AddTail(temp->data);
        // Передвигаем temp так, чтобы он указывал на следующий элемент
        temp = temp->next;
    }
 
    // Возвращаем полученный дек, который является объединением дека, для
    // которого был вызван operator+ и дека, который был передан в качестве
    // аргумента в operator+
    return Result; 
}
1
kbu
2 / 2 / 1
Регистрация: 30.07.2010
Сообщений: 76
18.02.2011, 16:33  [ТС] 3
Огромное спасибо за исчерпывающий комментарий!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2011, 16:33

Прокомментируйте пожалуйста код (класс String)
Добрый день. У меня есть пользовательский класс String. Есть какие-то замечания...

Прокомментируйте, пожалуйста, код. Список - очередь
//Список вида &quot;очередь&quot; #include &lt;iostream&gt; using namespace std; ...

Объясните код или прокомментируйте его, пожалуйста
Змейка закручена, но я не понимаю как, объясните пожалуйста:wall: #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru