开始学STL, 问两个初级问题

tsea 2003-08-29 02:50:48
1。什么叫模板特化? 有谁能系统介绍一下模板特化的含义和语法
2。泛型技术指的是什么技术? 就是指运用模板来写class和function吗,谁能系统介绍一下?
...全文
30 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nirvana_li 2003-08-31
  • 打赏
  • 举报
回复
引用一下侯老师写的:
简单地说,泛型程式设计是一种「将资料型别叁数化」的思维模式。C++ 的 template 机制就是泛型技术的一个具体载具。在 C++ 中,不论是 functions 或是 classes,皆可将其中所需要的资料型别以一个保留器(placeholder)代表,这个保留器亦即所谓的 template 叁数。例如 function template 如下:

template<typename T1, typename T2)
void func(T1 param1, T2 param2) { /* ... */ }

或是 class template:

template<typename T1, typename T2)
class A { /* ... */ }

一旦程式中使用函式 func() 或 class A 时:

func(5, 2.3);
A<int, double> a;

编译器即根据 function template 的函式引数、或是明白标示的 class template 引数,自动推导出一份函式实体或 class 实体。换言之这项具现化动作在编译时期就完成,不会增加执行时期的成本。(关於 template 的语法与性能,请叁考任何一本「年轻的」C++ 全貌型书籍)
Wolf0403 2003-08-31
  • 打赏
  • 举报
回复
以前写的程序片断:
template <typename _Arg_Type>
class FunctionAdapter<void, _Arg_Type>
是对
template <typename _Return_Type, typename _Arg_Type>
class FunctionAdapter
的一个偏特化
如果
template <>
class FunctionAdapter<void, int>
就是一个完全特化。这时
template <>
可以省略
mahu213 2003-08-29
  • 打赏
  • 举报
回复
泛型技术——以通用的方式来写算法和数据结构的编程技术。大多以模板的形式来实现!
^_^
riverboat 2003-08-29
  • 打赏
  • 举报
回复
stl的书现在好像比较多啦,楼上的建议很好呀
TopCat 2003-08-29
  • 打赏
  • 举报
回复
说句实话,需要“系统介绍”的内容最好去看书,书上说的一定很系统。
如果对书上的“系统介绍”有什么疑问,再来这里问比较好。

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧