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

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

Восстановить пароль Регистрация
 
kbu
 Аватар для kbu
2 / 2 / 0
Регистрация: 30.07.2010
Сообщений: 76
18.02.2011, 11:57     Прокомментируйте пожалуйста код #1
Объясните пожалуйста как работает данный кусок кода:

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++
C++ Написал тетрис. Прокомментируйте код пожалуйста )
C++ Прокомментируйте, пожалуйста, код программы.
прокомментируйте код пожалуйста C++
C++ Прокомментируйте пожалуйста код (класс String)
Прокомментируйте пожалуйста C++
C++ Прокомментируйте код, пожалуйста
Прокомментируйте, пожалуйста, код. Список - очередь C++

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

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

Текущее время: 09:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru