模板不会代码膨胀的小技巧——EffectiveC++条款42
时间:2010-06-28
来源:互联网
要点,void* 指针,私有继承,保护构造函数,inline
- class GenericStack {
- protected:
- GenericStack();
- ~GenericStack();
-
- void push(void *object);
- void * pop();
-
- bool empty() const;
-
- private:
- struct StackNode {
- void *data; // 节点数据
- StackNode *next; // 下一节点
-
- StackNode(void *newData, StackNode *nextNode)
- : data(newData), next(nextNode) {}
- };
-
- StackNode *top; // 栈顶
-
- GenericStack(const GenericStack& rhs); // 防止拷贝和
- GenericStack& // 赋值(参见
- operator=(const GenericStack& rhs); // 条款27)
- };
-
-
- template<class T>
- class Stack: private GenericStack {
- public:
- void push(T *objectPtr) { GenericStack::push(objectPtr); }
- T * pop() { return static_cast<T*>(GenericStack::pop()); }
- bool empty() const { return GenericStack::empty(); }
- };
作者: xyfree 发布时间: 2010-06-28
作者: prolj 发布时间: 2010-06-28
回复 prolj
你不就明白了吗?
我只是来发帖赚分的,嘿嘿
PS,这帖就是给那俩看的,告诉他们写VimE用C写优势不太多
作者: xyfree 发布时间: 2010-06-28
作者: ah13k 发布时间: 2010-06-28
作者: ypyf3000 发布时间: 2010-06-28
《从模板中分离出参数无关的代码》
http://dev.yesky.com/392/2249392.shtml
让所有指针类型元素共用一个底层实现是"分离参数无关代码"的一个体现。
作者: OwnWaterloo 发布时间: 2010-06-28
你去劝他…… 我是随波逐流型的……
别用java就行……
作者: OwnWaterloo 发布时间: 2010-06-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28