今天在看到一位 网友关于泛型编程的一个问题,源代码我稍整理变成这个样子
这里是"多态性"的一种实现方式
#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(int, char* [])
{
A<B> c;
c.print();
A<C> c2;
c2.print();
return 0;
}
尽管General Programming 与Object-Oriend Programming没有什么优劣之分,如做乘法和做加法没有好坏之分一样.
但这里,我还是想问一下,这里有模板有什么具体的好处?
与之等效的我可以通过从基类派生的方式,实现同样的效果,但众所周知,继承伴随着是virtual table和性能下降.这里,用这种方法显然可以避开上述问题.
这只是我的认知能力,出于抛砖引玉的目的,希望大家能多发表点意见.这还有什么益处呢?