維克斯討論區
在下面簡單講解一下好了
通常在c語言下
如果我想寫一個適用於求平方的話
可以使用marco
#define square(a) (a)*(a)
那無論我的變數是整數或是小數
我都可以直接使用
eg.
int x=5;
float y=2.5;
printf("x*x=%d\n",square(x));
printf("y*y=%f\n",square(y));
降子出來的答案為x=25,y=6.250000
但是相信常寫程式的人都知道
marco這東西能不用就盡量不要用
而且在c++中又有更方便的template可以用
而template如果用最簡單的意思來解譯的話
可以簡單的翻成函數的製造機器
如果我要把相同的例子用template來表示的話
可以寫成下面降
eg.
template<class T>
T square(T n)
{
return n*n;
}
然後在main中:
int x=5;
float y=2.5;
cout<<"x*x="<<square(x)<<endl;
cout<<"y*y="<<square(x)<<endl;
這裡只簡單講解一下template的最簡單用法
如果想真的深入了解的話
請再自行研究啦~
|