#include <iostream>
using namespace std;
class elem
{
public:
elem(int n) { i = n; }
int i;
};
template<class T1>
class ob
{
public:
ob() {}
virtual void foo1(T1* tData)
{
cout<<"foo1's out"<<endl;
}
};
template<class T2>
class obEx : public ob<T2>
{
public:
T2 e;
obEx() {}
void foo1(T2* tData)
{
e = *tData;
}
};
template<class T4>
void foo2(T4 t)
{
cout<<t<<endl;
}
void main()
{
int i = 0;
ob<int> o;
obEx<int> ox;
o.foo1(&i);
ox.foo1(&i);
foo2<int>(1);
system("pause");
}