c++问题,是不是函数模板只能写在主函数之前?

c++问题,是不是函数模板只能写在主函数之前?,第1张

不是的。

声明必须在主函数之前,但实现不必一定要在主函数前。

比如

//声明一个模板函数

template<T> T sum(T&, T&);

//主函数

int main()

{

//调用模板函数

int result = sum(1,1);

printf("%d", result);

}

//实现模板函数

template<T> T sum(T& val1, T& val2)

{

return val1 + val2;

}

  template并不是一个函数,而是用来声明模板的关键字,为了泛型编程。

  另外你min方法是作用在vector上的,不能对intArray求min。程序应该这么写

  

  //声明如下,最好别取min这个名字,c++里已经有min的宏定义

  template <class elemType>

  elemType mymin( elemType first, elemType last);

  //

  int main()

  {

  int intArray[] = {5, 10, 7, 9, 1, 4, 2},

  N = sizeof(intArray)/sizeof(int);

  int minInt = mymin(intArray, intArray+N); //调用时参数是首尾指针

  cout << minInt;

  }

  //函数实现

  template <class elemType>

  elemType mymin( elemType first, elemType last)

  {

  int minElem = first;

  while(++first != last)

  {

  if(minElem > first)

  minElem = first;

  }

  return minElem;

  }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12177901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存