Составители:
Рубрика:
3.6. Шаблоны 41
Второй способ
Реализуем перегрузку операции сложения с помощью функции с
двумя параметрами, которая не является членом класса.
class complex
{
public:
int real, image;
complex(int r=0, int i=0) { real=r; image=i; }
};
complex operator+(complex c1, complex c2)
{
return complex(c1.real+c2.real, c1.image + c2.image);
}
int main()
{
complex c1(1,0), c2(1), c3;
c3=c2+c1; //эквивалентно c3=operator+(c1,c2);
printf("re=%d im=%d", c3.real, c3.image);
}
3.6. Шаблоны
Шаблон класса (template) определяет данные и операции потен-
циально неограниченного множества типов. Например, единый шаб-
лон класса list может обеспечить общее описание для списков разных
типов int, float, char и т. д. В качестве примера использования шаб-
лонов рассмотрим реализацию последовательного стека с помощью
параметризованного класса. Далее в ряде программ эта реализация
будет использоваться.
template<class telem> class stack
{
telem *x; // массив для хранения элементов стека
int top; // указатель на вершину стека
int n; // размер выделенного для стека массива
3.6. Шаблоны 41 Второй способ Реализуем перегрузку операции сложения с помощью функции с двумя параметрами, которая не является членом класса. class complex { public: int real, image; complex(int r=0, int i=0) { real=r; image=i; } }; complex operator+(complex c1, complex c2) { return complex(c1.real+c2.real, c1.image + c2.image); } int main() { complex c1(1,0), c2(1), c3; c3=c2+c1; //эквивалентно c3=operator+(c1,c2); printf("re=%d im=%d", c3.real, c3.image); } 3.6. Шаблоны Шаблон класса (template) определяет данные и операции потен- циально неограниченного множества типов. Например, единый шаб- лон класса list может обеспечить общее описание для списков разных типов int, float, char и т. д. В качестве примера использования шаб- лонов рассмотрим реализацию последовательного стека с помощью параметризованного класса. Далее в ряде программ эта реализация будет использоваться. templateclass stack { telem *x; // массив для хранения элементов стека int top; // указатель на вершину стека int n; // размер выделенного для стека массива
Страницы
- « первая
- ‹ предыдущая
- …
- 39
- 40
- 41
- 42
- 43
- …
- следующая ›
- последняя »