社区
C++ 语言
帖子详情
很好奇的一个模板实例化的问题
DraculaW
2007-08-14 04:15:21
template<typename T, typename U>
class Test
{
public:
void a(T)
{
}
void a(U)
{
}
};
Test<int, int> test;
test.a(0);
这个时候 这个a(0)应该连到哪一个上面去呢.....
...全文
158
6
打赏
收藏
很好奇的一个模板实例化的问题
template class Test { public: void a(T) { } void a(U) { } }; Test test; test.a(0); 这个时候 这个a(0)应该连到哪一个上面去呢.....
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fish6344
2007-08-14
打赏
举报
回复
对于你的如下代码:
template<typename T, typename U>
class Test
{
public:
void a(T){}
void a(U){}
};
在编译器未检索到有使用该模板的代码以前,编译器将不作实例化,仅作语法检测。
编译器检索到:
Test<int, int> test;语句时,开始具现出该模板的实体如下:
template<typename int, typename int>
class Test
{
public:
void a(int){}
void a(int){}
};
等同于你有如下声明:
class Test
{
public:
void a(int){}
void a(int){}//编译时错误,函数名'a(int)'重定义!
};
相信你也意识到了错误的原因。所以如下语句:
test.a(0);
根本不存在绑定那一个的问题!
关键是,对于非模板类,编译器在类声明的结束处(最后一个’}’处),就开如决义具现出类声明实体,而对于类模板这个操作要推迟到使用的时候才具现出类声明实体。
DraculaW
2007-08-14
打赏
举报
回复
这个应该编译通不过
因为 会对Test这个函数定义两次....
不知道标准或者什么上面有说法没有
珍惜生命远离CPP
2007-08-14
打赏
举报
回复
g++
error: `void Test<T, U>::a(U) [with T = int, U = int]' and `void Test<T, U>::a(T) [with T = int, U = int]' cannot be overloaded
DraculaW
2007-08-14
打赏
举报
回复
当然没有通过啊 所以我才来问问...
loops
2007-08-14
打赏
举报
回复
你在哪个编译器上编译通过了?
taodm
2007-08-14
打赏
举报
回复
自己编译试一下嘛。
如果能编译过的话,你在2个函数里加打印,执行一下嘛。
举手之劳,为啥不自己试?
templatize:JavaScript
模板
库
最初,它需要
一个
非常简单的
模板
库,因此创建了自己的版本,然后才滚雪球(也只是出于
好奇
,对我的使用意愿)将其变成了功能强大的
模板
库。 劳伦斯·辛:copyright:2021 内容 用法 导入源代码或缩小的javascript。 ...
gotemplate:Go的基于包的
模板
系统
转到
模板
该工具使用需要go 1.4的“ go generate”来管理Go语言的基于包的
模板
。 安装 使用go get安装 ...这将在$GOPATH/bin构建gotemplate二进制文件。 它还会提取一组
模板
,... 这会将
模板
实例化
到名为gotemplate_mySet
android-native-service-workshop
实作Android Native Service第 1 步:使用 ...第三步:声明LedService类物件的
实例化
将使用单例模式使用虚函数(多态) class LedService: public BnLedService{private: LedService(); virtual ~LedService();};
ip-project:构建适用于IP验证程序的AWS基础设施
解析对IP地址的请求,
实例化
MySQL客户端,执行SQL查询以查找包含已发送IP地址的阻止列表。 返回JSON响应,其中包含IP地址在...中的所有阻止列表的数组;如果在任何列表中都不存在,则返回
一个
空数组。 Amazon RDS-...
soundreviews:面向NodeJS的Soundcloud评论系统
这也将为他们提供
一个
类似于平台,以一种简单的可访问方法让匿名用户(或在将来的基于自定义登录的实例中)对每首歌曲进行投票和评论。 细节 目前,它是基于Node.js构建的,其主要目的是即使对于小型模块化应用程序...
C++ 语言
64,282
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章