#include <iostream>
using namespace std;
template <class T>
class Rectangle{
public:
Rectangle(T n1,T n2,T n3, T n4){
left = n1; top=n2; width=n3; height=n4;
}
T GetRight() {
return left + width;
}
T GetBottom(){
return top+height;
}
T left,top,width,height;
};
int main()
{
Rectangle<int> rect1(50,50,100,100);
cout << rect1.GetRight() << endl;
Rectangle<double> rect2(50.5,50.5,100.1,100.1);
cout << rect2.GetRight() << endl;
return 0;
}
以上程式碼是宣告一個新的class,必需要注意的是,template <class T>與下面定義的class是一體的,所以,每定義一個新的class時,必需要針對那一個class新增一個template敘述句。
產生範本類別時,可以像下列一樣指定使用型。這時指定曖昧的型。
Rectangle<int> rect; // 指定T為int型
Rectangle<double> rect; // 指定T為double型
當範本引數為2個以上時,可以像下列一樣指定多個型別。
template<class T1,class T2> // 有兩個範本引數
class Rectangle{
……
};
……
Rectangle<int,char> rect; // 指定int型和double型
同樣的,template<class T1,class T2>與template關鍵字下面定義的class是一體的
參考資料:新C++學習繪本
沒有留言:
張貼留言