找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4026|回复: 2

ACE中的模板采用分离模式是怎么实现的?

[复制链接]
发表于 2010-9-4 14:41:35 | 显示全部楼层 |阅读模式
平时我们写带有模板的类时,要么直接把一个类的声明与定义都放在一个头文件,使用的时候直接包含这个头文件即可;要么分成一个.h和.cpp,然后引用这个类时候包含.cpp,但是看ACE中的采用的是分离模式,使用这个类的时候只是包含头文件,请问哪位大侠说说这个怎么实现的?
发表于 2010-9-5 10:32:45 | 显示全部楼层
楼主仔细看,头文件末尾一般都有一个同名的.inl文件
这个文件一般是包含模板的实现。
 楼主| 发表于 2010-9-6 09:01:00 | 显示全部楼层
回复 2# modern
谢谢版主的提醒!
昨天仔细看了一下单例模板ACE_Singleton的实现,确实头文件的最后有几组条件编译:
#if defined (__ACE_INLINE__)
#include "ace/Singleton.inl"
#endif /* __ACE_INLINE__ */

#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
#include "ace/Singleton.cpp"
#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */

#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
#pragma implementation ("Singleton.cpp")
#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
其实他还是相当于写在一起了,不知道我这样理解有没有问题?
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-19 08:21 , Processed in 0.017592 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表