免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: SANFXUNIL
打印 上一主题 下一主题

[C++] [提问]C++继承模板类 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-11-04 11:13 |只看该作者
#ifndef _MATRIX_H
#define _MATRIX_H

这就保证了决不会出现重复定义的错误.

另即,如果哪个编译器支持模板类的声明和实现分开,麻烦告所我是那个编译器,值得庆祝.

论坛徽章:
0
12 [报告]
发表于 2005-11-04 11:19 |只看该作者
非常谢谢!!!
但编译器为什么这样呢?
是不是就像inline的一样, 是因为要产生多份代码?

论坛徽章:
0
13 [报告]
发表于 2005-11-04 11:30 |只看该作者
声明和实现分开是好的编程风格, 但是象Yarco 说, 模板里它们很难分开.

compiler得在同一个cpp文件里看到模板类的实现, 和使用该模板的参数类, 才能instantiate该模板.

LZ的模板类实现的文件虽编译通过, 但并没有产生code.

论坛徽章:
0
14 [报告]
发表于 2005-11-04 11:45 |只看该作者
原帖由 Alligator27 于 2005-11-4 11:30 发表
声明和实现分开是好的编程风格, 但是象Yarco 说, 模板里它们很难分开.

compiler得在同一个cpp文件里看到模板类的实现, 和使用该模板的参数类, 才能instantiate该模板.

LZ的模板类实现的文件虽编译通过, 但并 ...


恍然大悟!! 谢谢Alligator27!!!

论坛徽章:
0
15 [报告]
发表于 2005-11-04 17:54 |只看该作者
原帖由 Yarco 于 2005-11-4 01:24 发表
使用模板, 声明和定义不能分开.
这就是为什么<string>而不是string.h的原因

是使用了名字空间的原因吧?

论坛徽章:
0
16 [报告]
发表于 2005-11-04 18:01 |只看该作者
《c++摸版编程》里面说有一个便宜器可以作到,你可以去看看。
里面用的技术是对摸版函数做export,就可以实现和声明分开。
作用是,在定义文件里面可以看到摸版的声明
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP