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

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

Войти
Регистрация
Восстановить пароль
 
Kristi-na
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 57
#1

Комментарии к исходному коду программы - C++

01.11.2012, 00:47. Просмотров 331. Ответов 0
Метки нет (Все метки)

Я новичок в С++, только начали изучать классы. Помогите разобраться с текстом программы. Если можно добавить комментарии к тексту. Заранее спасибо.

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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <conio.h>
 
struct Book {
  std::string author;
  std::string name;
  Book() : author(""), name("") {}
  Book(const std::string &author_, const std::string name_)
    : author(author_), name(name_) {}
};
 
class SimpleQueue 
   { public:
         SimpleQueue() { base_.next = base_.prev = &base_; }
         SimpleQueue(const SimpleQueue  &other) {
           base_.next = base_.prev = &base_;
           NodeBase *node = other.base_.next;
           while (node != &(other.base_)) 
            { PushBack(static_cast<Node*>(node)->value);
              node = node->next;
            }
  }
  ~SimpleQueue() { Clear(); }
  void PopFront() {
    // тут надо предусмотреть, что список не пуст
    Node *node = static_cast<Node*>(base_.next);
    node->prev->next = node->next;
    node->next->prev = node->prev;
    delete node;
  }
  Book &Front() const {
    // тут надо предусмотреть, что список не пуст
    return static_cast<Node*>(base_.prev)->value;
  }
  void PushBack(const Book &value) {
    Node *node = new Node;
    node->value = value;
    node->next = &base_;
    node->prev = base_.prev;
    node->next->prev = node->prev->next = node;
  }
  bool Empty() {
    return (base_.next == &base_) && (base_.prev == &base_);
  }
  void Clear() {
    while (!Empty())
      PopFront();
  }
  void Print() {
    for (NodeBase *node = base_.next; node != &base_; node = node->next)
      std::cout << "Author: "<< static_cast<Node*>(node)->value.author
                << std::endl
                << "Name: " << static_cast<Node*>(node)->value.name
                << std::endl << "-----" << std::endl;
  }
  SimpleQueue AuthoredBy(const std::string &author) {
    SimpleQueue result;
    for (NodeBase *node = base_.next; node != &base_; node = node->next)
      if (static_cast<Node*>(node)->value.author == author)
        result.PushBack(static_cast<Node*>(node)->value);
    return result;
  }
 private:
  struct NodeBase {
    NodeBase *next;
    NodeBase *prev;
  };
  struct Node: public NodeBase {
    Book value;
  };
  NodeBase base_;
};
 
int main(int argc, char *argv[]) {
  SimpleQueue queue;
 
  queue.PushBack(Book("Prattchet", "Colour of Sky, The"));
  queue.PushBack(Book("Melville", "Moby-Dick"));
  queue.PushBack(Book("Prattchet", "Wizzard"));
 
  SimpleQueue copy(queue);
  queue.PopFront();
  
  std::cout << std::endl << "Queue:" << std::endl << std::endl;
  queue.Print();
 
  std::cout << std::endl << "Copy:" << std::endl << std::endl;
  copy.Print();
 
  std::cout << std::endl << "Authored by Prattchet:" << std::endl << std::endl;
  copy.AuthoredBy("Prattchet").Print();
  getch();
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2012, 00:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Комментарии к исходному коду программы (C++):

Где найти несложные программы для windows desktop, с доступом к исходному коду? - C++
Хочу получить опыт, почитав и хотя бы не много поняв достаточно качественные и проффесионально написанные программы. Пусть лучше будет...

Вопрос по исходному коду - C++
доброго времени суток.. Тут писал от балды себе развлекательную интерелектуальную игрушку на консоли и столкнулся с проблемой, при выборе...

Как пройтись по чужому исходному коду ? - C++
visual studio 2008 есть большой многофайловый проект и мне нужно изучить его исходный код как пройтись по его коду от начала до конца?...

Комментарии к коду - C++
Имеются ряд вопросов по коду. 1.Что нужно переделать ,для того чтобы добавить шаблоны? 2. Прокомментируйте пожалуйста код. Заранее...

Комментарии к коду - C++
Пожалуйста, помогите понять как работает код - поставить комментарии к строкам. #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Комментарии к коду - C++
Доброго времени суток. Есть код программы. Необходимо к самым основным строчка написать комментарии. То есть, для чего нужен данный...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 00:47
Привет! Вот еще темы с ответами:

Написать комментарии к коду - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;string.h&quot; using namespace std; class A//документы {protected: int...

Написать комментарии к коду - C++
Помогите написать комментарии к этому заданию. И подробно прояснить. #include &lt;cstdlib&gt; #include &lt;cstdio&gt; #include &lt;string.h&gt; ...

Написать комментарии к коду - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; #include &lt;map&gt; int main() { setlocale(LC_CTYPE,...

Нужны комментарии к коду - C++
int bestStr(char** file, int numstr) { int iBest = -1, bestwords = 0; for (int i = 0; i &lt; numstr; i++) { int goodwords =...


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

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

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