- 博客(5)
- 收藏
- 关注
原创 人与继承的C++实现
allaboutprogram 上面的一个帖子:如果上帝是程序员,我们每个人不用说了,肯定是人的每个实例,但是上帝会把人定义为接口呢还是类?究竟我们是继承了人这个基类,还是实现了人的接口?人妖这个类怎么就能变过来了?双胞胎怎么生成的?连体婴儿呢?我的看法是:人是类, 而不是接口, 有些东西人是天生就有的, 因此人应该是类.人妖属于保护继承, 隐藏了一些细节, 同时也覆盖了某些函数. 既然是prot
2005-06-27 11:59:00 1663 3
原创 C++ Templates (给模板参数命名2)
上面那个帖子的实现手法不太好, 当client使用的时候, 还是需要 BreadSlicer, Policy2_is > bc;复杂的嵌套模板语法, 如果能够去掉PolicyN_is, 例如可以这样 BreadSlicer如果定制其中的policy2, 这样 BreadSlicer bc;如果需要定制2, 3, 这样 BreadSlicer bc;与顺序无关, 先写3, 再写2也可以 BreadS
2005-06-27 09:49:00 1759
原创 C++ Templates (给模板参数命名)
看C++ Templates 16.1 Named Template Arguments书中的例子实现手法使用多重/虚拟继承, 实现手法感觉比较诡秘. 但是至少告诉我是可以实现的. 于是干脆自己也练了练手, 博君一笑. 只在VC7.1下测试过, VC6也许可能可以迂回实现, 但是估计工作量太大. 1. 首先需要一个基本的 If 语句. template struct if_{ typed
2005-06-26 16:44:00 1955 3
原创 C++ Templates
又发现一个诡秘的地方模板派生类(下面的D) 从一个 确定性基类(指B)继承, 在D的定义中, 编译器优先查找基类中的名字, 然后才是模板参数placeholder (即Type) .例如:struct B{ typedef int Type; //基类中有一个Type名字};templateclass D : public B //从非依赖基类B派生, {pu
2005-06-24 17:22:00 1453 1
原创 C++ Templates 的一个例子
C++ Templates 中的一个例子:一个模板基类templateclass Base{public: int field; // #1};派生类, 从上面的模板基类继承注意, 在此, 基类并不能确定就是上面的Base, 因为 下面#3 处可以看到, 程序对Base进行了特化templateclass Derived : public Base{public: void f(
2005-06-23 15:36:00 2838
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人