類模板及其繼承

//////////////////////////////////////////////////////// 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
請按任意鍵繼續...


發佈了66 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章