○テンプレート
■関数のテンプレート
template <class T>
T Add(T a,T b){
return a+b;
}
int main(int argc, char* argv[])
{
{
int a=10;
int b=20;
int c=Add<int>(a,b);
printf("%d\n",c);
}
{
double a=10;
double b=20;
double c=Add<double>(a,b);
printf("%f\n",c);
}
return 0;
}
■クラスのテンプレート
template <class T>
class test{
public :
T Add(T a,T b){
return a+b;
}
};
int main(int argc, char* argv[])
{
{
int a=10;
int b=20;
test<int> cls;
int c=cls.Add(a,b);
printf("%d\n",c);
}
{
double a=10;
double b=20;
test<double> cls;
double c=cls.Add(a,b);
printf("%f\n",c);
}
return 0;
}
■テンプレート定数1
template <int iLoop=1>
class test{
public:
void show(){
for(int i=0;i<iLoop;i++){
printf("%d\n",i);
}
}
};
int main(int argc, char* argv[])
{
test<10> cls;
cls.show();
return 0;
}
結果は 0から9までの値を表示します。
■テンプレート定数2
template <class T,int iLoop=1>
class test{
public:
T data[iLoop];
//この中でメソッドを書けばソートしたりできます。
};
int main(int argc, char* argv[])
{
test<int,4> cls;
cls.data[0]=1;
cls.data[1]=2;
cls.data[2]=3;
cls.data[3]=4;
test<double,2> cls2;
cls2.data[0]=0.1;
cls2.data[1]=0.2;
return 0;
}
▲トップページ
>
Windows と C++