我想在不使用宏的情况下为两种不同的数据类型使用单个代码。我试过这样的事情,但我没有提出完整的解决方案。
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);
...
...
...
}
答案 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,甚至使用定义的类。