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

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

Войти
Регистрация
Восстановить пароль
 
Димиан
1 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 54
#1

Класс-шаблон - C++

31.03.2011, 18:36. Просмотров 336. Ответов 1
Метки нет (Все метки)

Создать класс-шаблон, содержащий поля для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и вывода элементов массива на экран, а так же для подсчета суммы элементов массива, расположенных после последнего элемента, равного нулю. Продемонстрировать работу методов класса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2011, 18:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс-шаблон (C++):

Ошибка при компиляции:"C2955 "Tree": для использования класс шаблон требуется список аргументов шаблон" - C++
Есть класс бинарного дерева, в нем структура. Класс - Tree, структура - list(листик, а не список). При компиляции выдает...

Класс-шаблон - C++
Создать класс-шаблон, содержащий поля для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и...

класс-шаблон - C++
Создать класс-шаблон, содержащий поля для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и...

Класс-Шаблон - C++
В файле input1.txt - находятся числа в 10 с\с и лексемы. Реализовать: Написать класс-шаблон: class Steck{ X *elems...

Класс-шаблон list - C++
Хаюшки всем умным людям:) Есть такое задание: Создать класс-шаблон List для работы со списком на основе массива. Реализовать...

Friend - класс шаблон - C++
Подскажите, пожалуйста, почему Visual C++ 2010 Express нормально компилирует код template <class NODETYPE> class QueueNode { ...

1
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
31.03.2011, 21:31 #2
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
#include <cstdlib>
#include <ctime>
#include <iostream>
 
template <typename Tp_>
class Array {
 public:
  typedef Tp_ ValueType;
  explicit Array(size_t size)
    : capacity_(size), size_(size), data_(new ValueType[size]), recap_(10) {}
  Array() : capacity_(0), size_(0), data_(NULL), recap_(10) {}
  ~Array() {
    delete [] data_;
  }
  void Recap(size_t new_capacity) {
    ValueType* new_data = new ValueType[new_capacity];
    size_t new_size = ((new_capacity < size_) ? new_capacity : size_);
    for (size_t i = 0; i < new_size; ++i)
      new_data[i] = data_[i];
    delete [] data_;
    data_ = new_data;
    size_ = new_size;
    capacity_ = new_capacity;
  }
  size_t Size() const {
    return size_;
  }
  void PushBack(const ValueType& value) {
    if (size_ >= capacity_)
      Recap(capacity_ + recap_);
    data_[size_++] = value;
  }
  ValueType PopBack() {
    if (size_ > 0)
      return data_[--size_];
  }
  ValueType& At(size_t position) {
    return data_[position];
  }
  // вывод массива в поток с возвращением потока
  std::ostream& Print(std::ostream &stream) {
    for (size_t i = 0; i < Size(); ++i)
      stream << data_[i] << " ";
    return stream;
  }
  // сумма элементов после последнего нуля или всех элементов
  ValueType SumAfterLastZeroOrAll() {
    int last_zero_index = size_ - 1;
    while (last_zero_index > 0 && data_[last_zero_index] != 0)
      --last_zero_index;
    ValueType result = 0;
    for (size_t i = last_zero_index; i < size_; ++i)
      result += data_[i];
    return result;
  }
 private:
  Array(const Array&);          // запрет конструктора копирования
  void operator=(const Array&); // запрет оператора присваивания
  size_t capacity_;
  size_t size_;
  ValueType* data_;
  size_t recap_;
};
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  Array<int> array;
 
  for (int i = 0; i < 10; ++i)
    array.PushBack(rand() % 10);
 
  array.Print(std::cout) << std::endl << "Sum after last zero: " 
                         << array.SumAfterLastZeroOrAll() << std::endl;
  return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2011, 21:31
Привет! Вот еще темы с ответами:

Из класса в класс-шаблон - C++
Здравствуйте. Есть класс: class Bit_Indic { char indic; public: Bit_Indic (char _one, char _two, char _three, char...

Вернуть класс-шаблон - C++
Доброго времени суток. Переделываю класс-коллекцию под шаблон, возникла вот какая трудность: компилятор (C++ Builder) ругается на вот такой...

Создать шаблон класс Queue - C++
Создать шаблон класс Queue. Добавить след. методы: 1. добавление узла после заданного элемента 2. удаление последнего узла 3....

Класс шаблон и методы класса - C++
Есть такой класс-список прямо из учебника павловской: template &lt;class Data&gt; class List{ class Node{ Data d; Node *next; ...


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

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

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