|
1
|
|
|
2
|
- Използва се служебната дума template;
- <class T> - типа параметър, който се замества с точно определен
тип данна при декларирането на обекта;
- template<class T>
- class CExample
- {
- T m_Value;
- ...
- }
|
|
3
|
|
|
4
|
- template <class T>
- class CSamples
- {
- T Max() const;
- // Rest of the template definition...
- };
- template<class T>
- T CSamples<T>::Max() const
- {
- T theMax = m_Values[0];
- for(int i = 1; i < m_Free; i++)
- if(m_Values[i] > theMax)
- theMax = m_Values[i];
- return theMax;
- }
|
|
5
|
- Когато се създава обект, трябва да се укаже типа на параметъра:
- CSamples<double> myData(10.0);
|
|
6
|
- template<class T1, class T2>
- class CExampleClass
- {
- // Class data members
- private:
- T1 m_Value1;
- T2 m_Value2;
- // Rest of the template definition...
- };
|
|
7
|
- template <class T, int Size> class CSamples
- {
- private:
- T mValues[Size];
- int mFree;
- public:
- CSamples(const T values[], int count)
- {
- mFree = count < Size? count:Size;
- for(int i = 0; i < mFree; i++)
- mValues[i] = values[i];
- }
- };
- CSamples<double, 10>
|
|
8
|
- Изтеглете и разгледайте примера Ex8_07.cpp.
- Реализирайте към CSamples шаблон класа член-функциите:
- Min() - за намиране на
минимален елемент в масив;
- Average() – за намиране на средно аритметичната стойност на елементите
в масива.
- Демонстрирайте функционалността чрез задаване на int и double тип за
обекти от дефинираната шаблон функция.
|