tommy
It's hard to tell the world we live in is either a reality or a dream
posts - 52, comments - 17, trackbacks - 0, articles - 0
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
读书笔记《C++设计新思维》(1) Template Template 参数
Posted on 2006-01-21 04:39
Tommy Liang
阅读(1833)
评论(2)
编辑
收藏
引用
所属分类:
泛型编程与设计模式
下面的代码,所谓 "Template Template 参数",在 VC6 下面编译是会报告“template can't be nested”的,幸好, VC7是能成功编译的,否则这本《C++设计新思维》就很难看下去了,
template
<
class
T
>
struct
OpNewCreator
{
static
T
*
Create()
{
return
new
T;
}
}
;
template
<
class
T
>
struct
MallocCreator
{
static
T
*
Create()
{
void
*
buf
=
std::malloc(
sizeof
(T));
if
(
!
buf )
return
0
;
return
new
(buf) T;
}
}
;
template
<
class
T
>
struct
PrototypeCreator
{
PrototypeCreator(T
*
pObj
=
0
) : pPrototype_(pObj)
{}
T
*
Create()
{
return
pPrototype_
?
pPrototype_
->
Clone() :
0
;
}
T
*
GetPrototype()
{
return
pPrototype_; }
void
SetPrototype(T
*
pObj)
{ pPrototype_
=
pObj; }
private
:
T
*
pPrototype_;
}
;
class
Widget
{
}
;
template
<
template
<
class
Created
>
class
CreationPolicy
>
class
WidgetManager :
public
CreationPolicy
<
Widget
>
{
//
}
;
int
_tmain(
int
argc, _TCHAR
*
argv[])
{
typedef WidgetManager
<
OpNewCreator
>
myWidgetMgr;
return
0
;
}
Feedback
#
re: 读书笔记《C++设计新思维》(1) Template Template 参数
回复
更多评论
2006-12-14 18:08 by
huangshan
好,我现在也在看这本书,但是我觉得很困难。
请问我需要先看些什么书?
c/c++ 语法我应该是很熟悉了
templates 的前9章也看完了(理解不是很深刻,有需要随时复习)
我想问问,我还需要些什么知识才能比较好的看这本书
#
re: 读书笔记《C++设计新思维》(1) Template Template 参数
回复
更多评论
2006-12-14 18:10 by
huangshan
我上网计较困难,
你能直接给我回信吗?
huangshan_china@163.com
谢谢
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
递归数查寻表
读书笔记《C++设计新思维》(8) 边界标记:NullType和EmptyType
读书笔记《C++设计新思维》(7) std::type_info类的包装类
读书笔记《C++设计新思维》(6) 编译期间侦测继承性
读书笔记《C++设计新思维》(5) 编译期间侦测可转换性
读书笔记《C++设计新思维》(4) Type Selection
读书笔记《C++设计新思维》(3) Type2Type的意义
读书笔记《C++设计新思维》(2) Int2Type的意义
读书笔记《C++设计新思维》(1) Template Template 参数
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © Tommy Liang
日历
<
2006年1月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔分类
away3d(2)
C++语言与规范(5)
development idea(2)
Unix(1)
读书笔记《C++图算法》(3)
泛型编程与设计模式(9)
机器人(1)
进程与线程(3)
数学(2)
随笔档案
2015年1月 (1)
2013年8月 (1)
2013年1月 (1)
2012年12月 (1)
2012年5月 (1)
2012年4月 (1)
2012年3月 (1)
2011年11月 (3)
2011年6月 (3)
2011年5月 (1)
2011年3月 (2)
2011年1月 (1)
2010年10月 (1)
2010年9月 (5)
2009年7月 (3)
2009年3月 (2)
2006年4月 (3)
2006年2月 (9)
2006年1月 (2)
2005年12月 (7)
2005年10月 (3)
搜索
最新评论
1. re: 读书笔记《C++设计新思维》(3) Type2Type的意义
这2个有什么不同呢。
开销估计也差不多。
我觉得2者可能的不同还是在可扩展性上面。
--kaso
2. re: 邻接表 SparseMultiGRAPH
remove好像不太对吧,我们只是删一条边,你的删了很多呀
--windward
3. re: 最简单的堆栈溢出demo
在哪儿有个/gz 啊大哥
--石头儿
4. re: 最简单的堆栈溢出demo
int *eip = (int*)&hackstr[24]; //20->23是EBP
这一行中的[24]应该改成[20]吧,我是arm指令
--nuke
5. re: 关于C++的 explicit关键字
透彻,明白了
--一样一样
阅读排行榜
1. 关于C++的 explicit关键字(9992)
2. 四元数入门(8520)
3. 读书笔记《C++设计新思维》(7) std::type_info类的包装类(4061)
4. 最简单的堆栈溢出demo(2649)
5. Qt moc 的一个诡异提示(2299)
评论排行榜
1. 关于C++的 explicit关键字(6)
2. 最简单的堆栈溢出demo(4)
3. 读书笔记《C++设计新思维》(1) Template Template 参数(2)
4. 读书笔记《C++设计新思维》(5) 编译期间侦测可转换性(2)
5. 计时辅助类(1)