#include <iostream>
class father
{
public:
virtual void Output()=0;
protected:
private:
};
class son:public father
{
public:
virtual void Output();
protected:
private:
};
void son::Output()
{
std::cout<<"Fuck Com"<<std::endl;
}
template <class T>
class CComObject:public T
{
public:
void CallBaseMethod()
{
T * pT = static_cast<T* >(this);
pT->Output();
}
class father
{
public:
virtual void Output()=0;
protected:
private:
};
class son:public father
{
public:
virtual void Output();
protected:
private:
};
void son::Output()
{
std::cout<<"Fuck Com"<<std::endl;
}
template <class T>
class CComObject:public T
{
public:
void CallBaseMethod()
{
T * pT = static_cast<T* >(this);
pT->Output();
}
};
用模板实现的多态,虚不虚拟的函数都不重要了