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

Шаблон - C++

Восстановить пароль Регистрация
 
НастенькО
1 / 1 / 0
Регистрация: 01.03.2011
Сообщений: 44
01.03.2011, 20:41     Шаблон #1
Создать класс-шаблон, содержащий поля для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и вывода элементов массива на экран, а так же для подсчета суммы элементов массива, расположенных между первым и вторым положительными элементами. Продемонстрировать работу методов класса.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2011, 20:41     Шаблон
Посмотрите здесь:

C++ Шаблон
C++ Шаблон
C++ шаблон
C++ Шаблон класса
Шаблон C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
02.03.2011, 11:58     Шаблон #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
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
#include <iostream>
 
//--------------
 
template <typename T>
class Array
{
   private:        
      size_t size_;
      T* data_;
             
   public:
      explicit Array(size_t size)            
     : size_(size), 
       data_(new T[size_])
      {      
      }
      
      Array(const Array& rhs)
     : size_(rhs.size_),
       data_(new T[size_])
      {  
     for(size_t i = 0 ; i < size_; ++i) 
        data_[i] = rhs.data_[i];        
      }
 
      ~Array()
      {
     delete[] data_;
      }
      
      T& operator[](size_t i)
      {      
     return data_[i];
      }
 
      const T& operator[](size_t i) const
      {        
     return data_[i];
      }        
 
      Array& operator=(const Array& rhs)
      {
     if(&rhs != this)
     {
        if(size_ != rhs.size_)
        {
           delete[] data_;
           size_ = rhs.size_;
           data_ = new T[size_];
        }
 
        for(size_t i = 0 ; i < size_; ++i) 
           data_[i] = rhs.data_[i];     
     }
 
     return *this;
      }
 
      size_t size() const
      {
     return size_;
      }       
     
};
 
//--------------
 
template <typename T>
std::ostream& operator<<(std::ostream& stream, const Array<T>& rhs)
{
   for(size_t i = 0 ; i < rhs.size(); ++i)
      stream << rhs[i] << ' ';   
   
   return stream;
}
      
//--------------
 
template <typename T>
std::istream& operator>>(std::istream& stream, Array<T>& rhs)
{
   for(size_t i = 0; i < rhs.size(); ++i)
      stream >> rhs[i];
   
   return stream;
}
 
//--------------
 
int main()
{
   Array<int> a(5);   
 
   std::cout << "Input array of " << a.size() << " items:" << std::endl;
   std::cin >> a;   
   std::cout << "Array: "  << a << std::endl;   
 
   return 0;
}
подсчета суммы элементов массива, расположенных между первым и вторым положительными элементами
самостоятельно.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
02.03.2011, 12:02     Шаблон #3
rangerx, а почему тут template <typename T> а не template <class T>?
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
02.03.2011, 12:11     Шаблон #4
Цитата Сообщение от aram_gyumri Посмотреть сообщение
а почему тут template <typename T> а не template <class T>?
эти записи аналогичны в данном случае, ключевое слово typename появилось чуть позже, чем class, кажется решили, что оно лучше описывает суть, но смысл остался тот же.
Yandex
Объявления
02.03.2011, 12:11     Шаблон
Ответ Создать тему
Опции темы

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