begin of classtemp.h
///> filename: classtemp.h
#ifndef CLASSTEMP_H
#define CLASSTEMP_H
#include<stdio.h>
template<typename T>
class CBaseTempFoo
{
protected:
T data;
public:
explicit CBaseTempFoo(T val)
{
printf("CBaseTempFoo\n");
data = val;
}
virtual ~CBaseTempFoo()
{
printf("~CBaseTempFoo\n");
}
void set(T val)
{
printf("CBaseTempFoo::set\n");
data = val;
}
T get()
{
printf("CBaseTempFoo::get\n");
return data;
}
};
class CDerivedFoo: public CBaseTempFoo<int>
{
public:
explicit CDerivedFoo(int a): CBaseTempFoo(a)
{}
public:
void show()
{
printf("derived show foo data value: %d\n", data);
}
};
#endif
end of classtemp.h
begin of main.cpp
#include <stdio.h>
#include "classtemp.h"
int main()
{
CDerivedFoo foo(100);
foo.set(101);
foo.show();
return 0;
}
end of main.cpp