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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kbu
2 / 2 / 0
Регистрация: 30.07.2010
Сообщений: 76
#1

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

18.02.2011, 11:57. Просмотров 371. Ответов 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;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2011, 11:57     Прокомментируйте пожалуйста код
Посмотрите здесь:

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

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

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

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

Прокомментируйте пожалуйста - C++
Не до конца понимаю код программы. Прошу дать комментарии к коду. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include&lt;math.h&gt; using...

Прокомментируйте пожалуйста - C++
#include &quot;iostream&quot; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; void Yacoby(int** m, int* s, int it); int...

Прокомментируйте, пожалуйста рекурсию - C++
Нашел в сети код прохождения доски шахм. конем. разобраться не очень получилось, помогите пожалуйста!void chessknight(int k) { c++; ...

Прокомментируйте пожалуйста прогу - C++
#include &quot;iostream&quot; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; float f2(float x){ return x+3; ...

Прокомментируйте,пожалуйста, участки программы - C++
Здравствуйте! Кому не сложно, помогите, пожалуйста, прояснить некоторые части программы. Суть программы заключается в следующем -...

Прокомментируйте код - C++
// Лесик.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;math.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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; 
}
kbu
2 / 2 / 0
Регистрация: 30.07.2010
Сообщений: 76
18.02.2011, 16:33  [ТС]     Прокомментируйте пожалуйста код #3
Огромное спасибо за исчерпывающий комментарий!!!
Ответ Создать тему
Опции темы

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