社区
工具平台和程序库
帖子详情
三个模板函数的区别
niu_a
2004-04-12 05:06:29
template <class T>
void test(const T &t)
{};
template <class T>
void test (const vector<T>& vctT)
{};
template <vector<class T> >
void test(const vector<T> &vctT)
{};
这三个模板函数扩展之后是什么样子啊?如何才能区分调用?
...全文
47
10
打赏
收藏
三个模板函数的区别
template void test(const T &t) {}; template void test (const vector& vctT) {}; template <vector > void test(const vector &vctT) {}; 这三个模板函数扩展之后是什么样子啊?如何才能区分调用?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
niu_a
2004-04-13
打赏
举报
回复
编译器之间在模板方面差异较大,譬如我的Vc6还不支持模板嵌套,但支持下面这种写法.
template <vector<class T> >
void test(const vector<T> &vctT)
{};
实际上与
template <class T>
void test(const vector<T> &vctT>{};应该是一样的.
(如果同时存在,编译器就会报重复定义错误)
BluntBlade
2004-04-13
打赏
举报
回复
《C++ 沉思录》上有关于Templates的一个解释,就是“一种受限宏”。
另外
template <vector<class T> >
void test(const vector<T> &vctT)
{};
这种写法编译器是不允许通过的。
应该写成
template <typename T, template<typename> class CONT = vector>
void test(const CONT<T> &vctT)
{};
adamsun
2004-04-13
打赏
举报
回复
在我看来,C++模板本身的机制偏向于宏的功用,不过要比宏更有安全性,泛化性。
但是结合模板所发展出来的一系列idioms那才是模板的迷人之处,但也是很难随心所欲的部分,
也是模板给C++带来巨大变革的关键!
yjh1982
2004-04-13
打赏
举报
回复
第三个是错的.
Wolf0403
2004-04-13
打赏
举报
回复
模板的思想还是很清晰的,编译器还是非常聪明的。
那是当然的,嘿嘿。不过等你深入之后就,,,也许,,,大概。。。呵呵
《C++ Templates》,如果你有兴趣。
nirvana_li
2004-04-12
打赏
举报
回复
template <class T>//T为模板类
void test(const T &t)//参数是const T&
{};
template <class T>//T为模板类
void test (const vector<T>& vctT)//参数是const vector<T>&
{};
template <vector<class T> > //T为模板类,做为vector的元素型别.
void test(const vector<T> &vctT)//参数是const vector<T>&
{};
niu_a
2004-04-12
打赏
举报
回复
sorry,
下面两个函数其实是一样的?我想问的是如何调用
template <class T>
void test (const vector<T>& vctT)
{};
template <vector<class T> >
void test(const vector<T> &vctT)
{};
现在明白了
vector<int> vctT;
test(vctT);//将会调用template <class T> void test (const T&)...//其实就是test<vector<int> (vctT);
test<int>(vctT);//将会调用template<class T> void test(const vector<T>&)...
模板的思想还是很清晰的,编译器还是非常聪明的。
Wolf0403
2004-04-12
打赏
举报
回复
template <vector<class T> >
void test(const vector<T> &vctT)
{};
你自己编译一下再提问好不好
happlyman
2004-04-12
打赏
举报
回复
模板嵌套,知道但是我不知道怎么说你能明白,也不知道你不明白什么
programer23
2004-04-12
打赏
举报
回复
顶
C++
模板
一:
函数
模板
与
模板
函数
文章目录一、
模板
的意义二、
函数
模板
与
模板
函数
三、
模板
特例化四、
模板
函数
、
模板
特例化、非
模板
函数
的重载关系 一、
模板
的意义
模板
的意义:一种特殊的
函数
可用不同类型进行调用,看起来和普通
函数
很相似,
区别
是类型可被参数化。 注意: 1.只用写一套代码实现逻辑,实例化的类型调用时可指定,编译器会从原模版实例化出来。 2.
函数
模板
不进行编译,
模板
函数
才是要被编译器所编译的。 3.一般来说,
模板
代码不能在一个...
【C++】泛型编程 ② (
函数
模板
与普通
函数
区别
)
一、
函数
模板
与普通
函数
区别
1、
函数
模板
与普通
函数
区别
2、代码示例 -
函数
模板
与普通
函数
区别
C++
函数
模板
的详细讲解【
函数
模板
的概念、用法及其
模板
函数
的概念知识】
目录前言C++
函数
模板
的使用
函数
模板
语法1.
模板
说明2.
函数
定义3.
函数
模板
调用
模板
函数
函数
模板
和
函数
重载 前言 C++提供了
模板
(template)编程的概念。所谓
模板
,实际上是建立一个通用
函数
或类,其类内部的类型和
函数
的形参类型不具体指定,用一个虚拟的类型来代表。这种通用的方式称为
模板
。
模板
是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。 C++
函数
模板
的使用 为什么要有
函数
模板
例如,在一个项目中,有个项目需求是能够实现多个
函数
用来返回两个数的最大值,要求能支持char类型、int
C++
函数
模板
与类
模板
的
区别
类
模板
: C++ 除了支持
函数
模板
,还支持类
模板
(Class Template)。
函数
模板
中定义的类型参数可以用在
函数
声明和
函数
定义中,类
模板
中定义的类型参数可以用在类声明和类实现中。类
模板
的目的同样是将数据的类型参数化。 声明类
模板
的语法为: template<typename 类型参数1 , typename 类型参数2 , …> class 类名{ //TODO: }...
函数
模板
和类
模板
详解
C++中的
模板
主要是
函数
模板
和类
模板
大致可以分为:
模板
函数
和
模板
类其中
模板
类主要解决对象问题 。 在 C++ 中为了操作简洁我们引入了
函数
模板
。所谓的
函数
模板
实际上是建立一个通用
函数
,其
函数
类型和形参类型不具体指定,用一个虚拟的类型来表达。这个通用
函数
就称为
函数
模板
。凡是
函数
体相同的
函数
都可以用这个这个
模板
来取代
模板
中的虚拟类型,从而实现了不同
函数
的功能。 1). ...
工具平台和程序库
24,857
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章