#include <cstdlib>
#include <iostream>
using namespace std;
class MyNodeA
{
public:
void SomeMethod(){cout<<"MyNodeA do sth"<<endl;}
};
class MyNodeB
{
public:
void SomeMethod(){cout<<"MyNodeB do sth"<<endl;}
};
template<class T>
class Test:public T
{
public:
~Test(){cout<<"Test 析构"<<endl;}
void SomeMethod(){
T* t = static_cast<T*>(this);
t->SomeMethod();
}
};
template<class T>void Do(Test<T>*p)
{
p->SomeMethod();
delete p;
}
int main(int argc, char *argv[])
{
Do(new Test<MyNodeA>);
Do(new Test<MyNodeB>);
system("PAUSE");
return EXIT_SUCCESS;
}
本文通过一个C++程序示例介绍了如何实现模板类的继承及多态性。主要展示了基类方法的覆盖和调用,以及如何通过指针或引用调用派生类的方法。此外,还演示了如何使用模板类来实现通用的行为。
1508

被折叠的 条评论
为什么被折叠?



