内容:
说明:
类模板的使用
示例代码:
// Class_Template.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
enum class Color
{
red, green, orange
};
enum class Fruit
{
apple, orange, pear
};
template<typename T>struct Traits;
template<>struct Traits<Fruit>
{
static string name( int index )
{
switch( index )
{
case 0:
return "apple";
break;
case 1:
return "orange";
break;
case 2:
return "pear";
break;
default:
return "unknown";
break;
}
}
};
template<>struct Traits<Color>
{
static string name( int index )
{
switch( index )
{
case 0:
return "red";
break;
case 1:
return "green";
break;
case 2:
return "orange";
break;
default:
return "unknown";
break;
}
}
};
//by zhaocl
int main()
{
int n;
cin >> n;
while( n-- )
{
int type1, type2;
cin >> type1 >> type2;
cout << Traits<Color>::name( type1 ) << endl;
cout << Traits<Fruit>::name( type2 ) << endl;
}
system( "pause" );
return 0;
}
知识点:
类模板的使用:先声明再使用
声明:
template<typename T>struct Truits;
实现:
template<>struct Truits<Fruit>
{};