Unit1.cpp
#include <vcl.h>
#pragma hdrstop
#include "函数模板中使用多种类型.cpp"
#include "Unit1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) {
int a = 3;
double b = 4.5;
Memo1->Text = "函数模板中使用多种类型";
Memo1->Lines->Add("a=" + IntToStr(a) + " b=" + FloatToStr(b)); // 交换前
swap<int, double>(a, b); // 多个类型参数
Memo1->Lines->Add("a=" + IntToStr(a) + " b=" + FloatToStr(b)); // 交换后
}
// ---------------------------------------------------------------------------
函数模板中使用多种类型.cpp
#include <iostream>
template<typename T1, typename T2>
void swap(T1& a,T2& b)
{
T1 t;
t = a;
a = (T2)b;
b = (T1)t;
}
输出效果