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

Констуркторы, деструкторы.... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При удалении динам.массива Segmentation failure http://www.cyberforum.ru/cpp-beginners/thread287955.html
Программа работает но когда удаляем delete buf; то возникает Segmentation failure.... без его удаления всё нормально... #include <iostream> #include <stdio.h> #include <string.h> using namespace std; int General_Funckshion(char *name); bool Glasnie(char s); void Show_File_Now(FILE *f);
C++ Прикрутить CppCheck к Code:Blocks Вот решил познакомиться с этой известной средой (переустановил Винду и понял, что MSVS ставить уже не хочу)) Все поставил, все работает, но вот начал ковыряться в плагинах и нашел на просторах инета плагин CppCheck. Конечно же захотелось) Скачал установщик CppCheck'а (.msi), поставил в папку \plugins (получились екзешник и дллка). Далее в самой среде открываю Manage plugins, там выбираю install... http://www.cyberforum.ru/cpp-beginners/thread287945.html
C++ Среднее значение в СМО
В условии дано среднее значение Х заявок в месяц в течении 6 месяцев.Как можно это реализовать получая конкретные числа.Про что почитать?Я так понял разброс может быть от 0 до 2Х, но чтобы среднее среди 6 значений было Х. В какую сторону копать?
Массив структур. Фун-я удаления и поиска. C++
Первый курс. Решили над нами сделать эксперимент и дали нам курсовую. В принципе ничего сложного абсолютно, подобное задание в первом семестре но на паскале я делал. А вот с С++ не получается:( Создать массив структур (записей), содержащих следующие поля: - номер поезда; - название пункта отправления и назначения; - время отправления. Предусмотреть в программе следующие действия: а) ...
C++ Строки и функции http://www.cyberforum.ru/cpp-beginners/thread287929.html
Программа выводит все цитаты из текста,считанного из файла. Надо оформить ее с помощью функции. Когда я пытаюсь сделать функцию, появляется несоответствие типов. Как сделать правильно? Подскажите, пожалуйста) вот прога: #include <iostream> #include <fstream> #include <string> void main() { std::ifstream ifs("test.txt");
C++ Шифрование Xor'ом Добрый день, уважаемые) тут такое дело, сел делать курсач и столкнулся с проблемой. Работа по шифрованию бинарными операциями и преподаватель дал алгоритм для шифрования XOR'ом...Но тут проблема - в алгоритме использован оператор ReDim, которого в с++ вроде бы нет...подскажите как решить данную проблемы... Задание курсовой такое: Разработать программу, кодирующую информацию в текстовом файле... подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
04.05.2011, 23:14     Констуркторы, деструкторы....
You're not going tolike it.
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#include <iostream>
#include <cstring>
 
class Book {
 public:
  class IsAuthor {
   public:
    IsAuthor(const char *value)
      : value_(strcpy(new char[strlen(value) + 1], value)){}
    ~IsAuthor() { delete value_; }
    bool operator()(const Book &book) {
      return strcmp(book.Author(), value_) == 0;
    }
   private:
    char *value_;
  };
  Book() : author_(NULL), name_(NULL) {}
  Book(const char *author, const char *name)
    : author_(strcpy(new char[strlen(author) + 1], author)),
      name_(strcpy(new char[strlen(name) + 1], name)) {}
  Book(const Book &other)
    : author_(strcpy(new char[strlen(other.Author()) + 1], other.Author())),
      name_(strcpy(new char[strlen(other.Name()) + 1], other.Name())) {}
  ~Book() {
    delete [] author_;
    delete [] name_;
  }
  char *Name() const { return name_; }
  char *Author() const { return author_; }
  void Name(const char *value) {
    delete [] name_;
    name_ = strcpy(new char[strlen(value) + 1], value);
  }
  void Author(const char *value) {
    delete [] author_;
    author_ = strcpy(new char[strlen(value) + 1], value);
  }
  Book &operator=(const Book &other) {
    if (&other != this) {
      Name(other.Name());
      Author(other.Author());
    }
    return *this;
  }
  friend std::ostream &operator<<(std::ostream &stream, const Book &book) {
    return stream << "Author: " << book.Author() << std::endl
                  << "Name: " << book.Name() << std::endl;
  }
 private:
  char *author_;
  char *name_;
};
 
template <class ValueType>
class Queue {
 public:
  struct ListItem {
    ValueType data;
    ListItem *next;
    ListItem() : data(), next(NULL) {}
    ListItem(const ValueType &value) : data(value), next(NULL) {}
  };
  Queue() : begin_(NULL), end_(NULL), size_(0) {}
  Queue(const Queue &other) : begin_(NULL), end_(NULL), size_(0) {
    ListItem *item = other.begin_;
    while (item != NULL) {
      PushBack(item->data);
      item = item->next;
    }
  }
  ~Queue() {
    Clear();
  }
  size_t Size() const { return size_; }
  void PushBack(const ValueType &value) {
    ListItem *new_item = new ListItem(value);
    if (begin_ == NULL) {
      begin_ = end_ = new_item;
    } else {
      end_->next = new_item;
      end_ = new_item;
    }
    ++size_;
  }
  ValueType PopBack() {
    ValueType result = end_->data;
    if (begin_ == end_) {
      delete end_;
      begin_ = end_ = NULL;
    } else {
      ListItem *pre_last = begin_;
      while (pre_last->next != end_)
        pre_last = pre_last->next;
      pre_last->next = NULL;
      delete end_;
      end_ = pre_last;
    }
    --size_;
    return result;
  }
  ValueType &Begin() { return begin_->data; }
  ValueType &End() { return end_->data; }
  void Clear() {
    if (begin_ != NULL)
    while (begin_->next != NULL) {
      ListItem *tmp = begin_->next;
      delete begin_;
      begin_ = tmp;
    }
    begin_ = end_ = NULL;
    size_ = 0;
  }
  template <class Predicate>
  void CopyIf(Queue &destination, Predicate predicate) {
    ListItem *item = begin_;
    while (item != NULL) {
      if (predicate(item->data))
        destination.PushBack(item->data);
      item = item->next;
    }
  }
  friend std::ostream &operator<<(std::ostream &stream, const Queue &list) {
    ListItem *item = list.begin_;
    while (item != NULL) {
      stream << item->data << std::endl;
      item = item->next;
    }
    return stream;
  }
 private:
  ListItem *begin_;
  ListItem *end_;
  size_t size_;
};
 
int main(int argc, char *argv[]) {
  Queue<Book> queue;
  
  queue.PushBack(Book("Prattchet", "Colour of Sky, The"));
  queue.PushBack(Book("Melville", "Moby-Dick"));
  queue.PushBack(Book("Prattchet", "Wizzard"));
 
  Queue<Book> copied(queue), authored;
  queue.CopyIf(authored, Book::IsAuthor("Prattchet"));
 
  std::cout << "* All:" << std::endl << queue;
  std::cout << "* Copy:" << std::endl << copied;
  
  std::cout << "* Last book: " << copied.PopBack() << std::endl;
 
  copied.Begin().Author("Terry Prattchet");
  copied.End().Author("Herman Melville");
  std::cout << "* Modified copy:" << std::endl << copied;
  
  std::cout << "* Only prattchet:" << std::endl << authored;
  return 0;
}
 
Текущее время: 23:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru