设为首页 加入收藏

TOP

C++非类型模板参数(二)
2014-04-06 17:36:08 来源: 作者: 【 】 浏览:230
Tags:类型 模板 参数

 

  MAXSIZE是新加入的第二个模板参数,类型为int,它指定了数组最多可包含的栈元素的个数

  同样,我们可以为模板参数指定缺省值:

  template

  class Stack {

  ...

  };

  非类型的函数模板参数

  你也可以为函数模板定义非类型参数。例如:

  template

  T addValue(T const& x)

  {

  return x + VAL:

  }

  借助于STL,可以传递这个函数模板的实例化给集中的每一个元素,让他们都增加一个整数值:

  std::transform(source.begin(), source.end(), dest.begin(), (int(*)(int const&))addValue);

  非类型模板参数的限制

  非类型模板参数是有限制的 ,通常而言,它们可以是常整数(包括枚举值)或者指向外部链接对象的指针。

  浮点数和类对象是不允许作为非类型模板参数的:

  template

  double process(double v) //error

  {

  return V * VAT;

  }

  template //error

  class MyClass {

  ...

  };

  另外,你也不能使用全局指针作为模板参数

  template

  class MyClass{

  ...

  };

  char const* s = "hello";

  MyClass x; //s是一个指向内部连接对象的指针

  但是你可以这样使用:

  template

  class MyClass {

  ...

  };

  extern char const s[] = "hello";

  MyClass x; //OK

  全局字符数组s由"hello"初始化,是一个外部链接对象

      

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++的const类成员函数 下一篇结构体自动化转为char数组

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言指针从入门到基 (2025-12-26 05:21:36)
·【C语言指针初阶】C (2025-12-26 05:21:33)
·C语言指针的定义和使 (2025-12-26 05:21:31)
·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)