#include "stdafx.h"
#include<iostream>
using namespace std;
#include <iostream>
template<typename T>
class A {
public:
static int a;
void print() const
{
cout << "AAA " << endl;
}
};
//-----------------------------------------------------------
template<typename T>
int A<T>::a = 111; //这是类模板静态变量的初始化
template<>
int A<char>::a = 222; //这是一个特化, T为char 时的 a静态变量的初始化
template<>
class A<bool>// 特化类
{
public:
static int a;
void printO() const
{
cout << "特化printO " << endl;
}
};
int A<bool>::a = 333;// 这是特化类的静态成员初始化 , 不能加template<>
template<>
void A< float >::print() const //这是一个特化, T为float 时的 print函数
{
std::cout << "特化print" << endl;
}
int main()
{
A<bool> a;
a.printO();
cout << A<double>::a << endl;
cout << A<char>::a << endl;
cout << A<bool>::a << endl;
A<float> a2;
a2.print();
}
Created by 黄强