类中的函数模板

swnuwangyun 2002-12-07 12:45:56

下面地的函数可以正确工作,但是我不明白的是因为主函数中对象a中的函数模板被实例化3个不同参数类型的模板函数,那么,在a的内部空间get的函数代码体一共有多少个?是1个还是3个
class A
{
public:
template<typename T>
void get(T t){}
public:
int a;
};
void main()
{
A a;
a.get(1);
a.get(1.21);
a.get('a');
}
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
torlitayalongsing 2002-12-08
  • 打赏
  • 举报
回复
3个。因为c++中,无论多少个,实例是要分别在内存里面分存储空间的。

这个问题在清华大学出的《面向对象程序开发设计》一书中提过。
SnowFisher 2002-12-08
  • 打赏
  • 举报
回复
函数模板在被调用的时候才会实例化,所以是3个。《C++ primer》(3rd)有介绍
fly2130 2002-12-08
  • 打赏
  • 举报
回复
3个
deanjiang 2002-12-07
  • 打赏
  • 举报
回复
这是成员函数,又不是虚函数,有什么内部内部的?
trancebaby 2002-12-07
  • 打赏
  • 举报
回复
你的代码好怪。。。
怎么用的时候都没有实际的类型代入typename T呢?
swnuwangyun 2002-12-07
  • 打赏
  • 举报
回复
代码应该是下面的
class A
{
public:
template<typename T>
void get(T t){}
};
void main()
{
A a;
a.get(2);
a.get(2.3);
a.get('p');
}
问题是在程序中生成了一个对象,而这个对象生成了3个不同的模板函数,那么在内存中get函数的函数代码实例有几个?1个还是3个

24,854

社区成员

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

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