多态生其实还可以通过类的聚合或组合的方式来达到,从而还可以避免继承或多继承,
代码如下 (未在开发环境中调试)
#include <stdio.h>
template <class T>
class A
{
public:
void print()
{
base_.b();
}
typename T base_;
};
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;
}