-4

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

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);

    ...
    ...
    ...
}
4

1 回答 1

6

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

你可以实现一个最大值

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

这将适用于您可以比较类的任何对象。整数、浮点数,甚至使用已定义的类。

于 2013-03-22T03:06:37.457 回答