Focus on ACE

订阅 ace-china
电子邮件:
浏览存于 groups.google.com 上的所有帖子

C++博客 首页 新随笔 联系 聚合 管理
  64 Posts :: 3 Stories :: 22 Comments :: 0 Trackbacks
今天在看到一位 网友关于泛型编程的一个问题,源代码我稍整理变成这个样子
这里是"多态性"的一种实现方式
 


#include <stdio.h> 

template 
<class BASE> 
class A : public BASE 

public
  
void print() 
  { 
    BASE::b(); 
  }   
}; 


class B 

public
  
void b() 
  { 
    printf(
" Class B---------------------\n"); 
  }   
}; 

class C 

public
  
void b() 
  { 
    printf(
" Class C---------------------\n"); 
  }   
}; 

int main(intchar* []) 

  A
<B> c; 
  c.print(); 
  A
<C> c2;
  c2.print();
  
return 0;   


尽管General Programming 与Object-Oriend Programming没有什么优劣之分,如做乘法和做加法没有好坏之分一样.
但这里,我还是想问一下,这里有模板有什么具体的好处?
 
与之等效的我可以通过从基类派生的方式,实现同样的效果,但众所周知,继承伴随着是virtual table和性能下降.这里,用这种方法显然可以避开上述问题.
 
这只是我的认知能力,出于抛砖引玉的目的,希望大家能多发表点意见.这还有什么益处呢?
posted on 2006-04-13 18:21 Stone Jiang 阅读(795) 评论(0)  编辑 收藏 引用 所属分类: C++&OOP

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理