1. 模板函数的定义
模板函数的声明需要使用 template <typename T>
:
template <typename T>
T square(T x){
return x*x;
}
2. 模板类的定义
template <typename T>
class myVector{
private:
T array[1000];
int size;
public:
myVector():size(0) {};
void push(T element){
array[size++] = element;
}
T getVal(int n){
return array[n];
}
int getSize(){
return size;
}
void print(){
for (int i=0; i<size; i++){
cout << array[i] << " ";
}
}
};
template <typename T>
myVector<T> operator* (myVector<T> &vect1, myVector<T> &vect2){
}
3. 使用举例
下面构建一个简易的vector容器:
#include <iostream>
using namespace std;
template <typename T>
T square(T x){
return x*x;
}
template <typename T>
class myVector{
private:
T array[1000];
int size;
public:
myVector():size(0) {};
void push(T element){
array[size++] = element;
}
T getVal(int n){
return array[n];
}
int getSize(){
return size;
}
void print(){
for (int i=0; i<size; i++){
cout << array[i] << " ";
}
}
};
int main()
{
// int a = 5;
// double b = 5.0;
// cout << square(a) << "\n";
// cout << square(b) << endl;
myVector<int> v;
v.push(1);
v.push(3);
v.push(5);
v.print();
cout << v.getSize() << endl;
cout << v.getVal(0) << endl;
return 0;
}