类模板及其继承

来源:互联网 发布:linux 发送arp广播包 编辑:程序博客网 时间:2024/06/01 08:38

//////////////////////////////////////////////////////// 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 ////////////////////////////////////////////////////////


编译:
在vs2010中编译

输出结果:
CBaseTempFoo
CBaseTempFoo::set
derived show foo data value: 101
~CBaseTempFoo
请按任意键继续...


0 0
原创粉丝点击