C ++ - 具有多个参数类型的方法

时间:2012-06-26 10:28:43

标签: c++ templates parameters

我有很多Java经验,但对C ++来说是新手。

我需要一个方法,简单的例子是set union,它将使用set<int>set<bool>的参数,但没有其他类型。

目前我已经重载了方法名称,但它在方法体中重复了很多类似的代码。

有更好的方法吗?谢谢!

2 个答案:

答案 0 :(得分:2)

您可以写一个 Function Template 但是,如果您执行类似的操作,无论参数类型如何,您都可以这样做。如果您对每种数据类型执行不同的操作,那么您将需要专门化模板功能,这基本上可以帮助您解决问题。

答案 1 :(得分:1)

template <typename T>
void func(const std::set<T> &param)
{
  // your staff
}

//....

int main()
{
  std::set<int> int_set;
  std::set<bool> bool_set;

  func(int_set);
  func(bool_set);
}