使用相同的代码而不使用两种不同数据类型的宏

时间:2013-03-22 03:02:57

标签: c++

我想在不使用宏的情况下为两种不同的数据类型使用单个代码。我试过这样的事情,但我没有提出完整的解决方案。

void func(bool istype1, void *ptr)
{
    void *t1;
    if(isType1)
        t1=static_cast<type1>(ptr);
    else   // isType1 == false means data type 2.
        t1=static_cast<type2>(ptr);

    ...
    ...
    ...
}

1 个答案:

答案 0 :(得分:5)

你想要一个模板。你必须在某处阅读它们。 http://www.cplusplus.com/doc/tutorial/templates/

您可以实现最大值

template <class T>
T max(T one, T two)
{
   return one > two ? one : two;
}

这适用于可以比较类的任何对象。 Ints,float,甚至使用定义的类。