Есть ли в Pascal аналог шаблонов из C++ - Free Pascal
Формулировка задачи:
Есть ли в Pascal аналог Шаблонов из С++? Если да, то как, например, реализовать такую процедуру:
template< typename T > void sort( T array[], int size ) { T t; for (int i = 0; i < size - 1; i++) for (int j = size - 1; j > i; j--) if (array[j] < array[j-1]) { t = array[j]; array[j] = array[j-1]; array[j-1] = t; } }
Решение задачи: «Есть ли в Pascal аналог шаблонов из C++»
textual
Листинг программы
{$mode objfpc} type rec = record A, B: integer; end; generic Swapper<T> = class type public class procedure swap(var A, B: T); inline; end; iSwapper = specialize Swapper<integer>; fSwapper = specialize Swapper<double>; rSwapper = specialize Swapper<rec>; class procedure Swapper.swap(var A, B: T); var C: T; begin C := A; A := B; B := C; end; var i1, i2: integer; f1, f2: double; r1, r2: rec; begin i1 := 4; i2 := 7; writeln(i1, ' <-> ', i2); iSwapper.swap(i1, i2); writeln(i1, ' ', i2); f1 := 2.4; f2 := 5.7; writeln(f1:0:2, ' <-> ', f2:0:2); fSwapper.swap(f1, f2); writeln(f1:0:2, ' ', f2:0:2); r1.A := 10; r1.B := 20; r2.A := 40; r2.B := 76; rSwapper.swap(r1, r2); // тоже можешь напечатать содержимое записей, чтобы убедиться, что Swap работает... end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д