模板的定义
模板函数
template <typename T>
T sum(T a, T b)
{
return (a + b);
}
模板结构体
template <typename T>
struct _MyStruct
{
T a;
T b[10];
T x;
void set(const T px) { x = px; }
union {
struct { T x1, y1; };
T pos[2];
};
};
模板类
template <class T>
class TOOL
{
private:
T a;
public:
T sum(T x, T y)
{
return(x + y);
}
T getXValue()
{
return a;
}
void setXValue(T a)
{
this->a = a;
}
};
具体使用
int main()
{
int tA = 1, tB = 2;
int td = sum(tA, tB);
printf("td=%d\n", td);
struct _MyStruct<int> myStruct;
myStruct.a = 10;
myStruct.x = 11;
printf("a=%d,x=%d\n", myStruct.a, myStruct.x);
myStruct.set(888);
printf("x=%d\n", myStruct.x);
struct _MyStruct<double> mStruct;
mStruct.pos[0] = 78.8;
mStruct.pos[1] = 79.9;
mStruct.x1 = 456.1;
mStruct.y1 = 789.2;
printf("%f,%f\n", mStruct.pos[0], mStruct.pos[1]);
printf("x1=%f, y1=%f\n", mStruct.x1, myStruct.y1);
TOOL<int> tool;
tool.setXValue(1001);
int data = tool.getXValue();
printf("data=%d\n", data);
}