模板特化和强制转换的问题

/********************************************************************
 file name : CLK.h
 author  :   Clark/陈泽丹
 created :   2011-11-10
 purpose :   模板特化和强制转换问题
*********************************************************************/
#include <iostream>

using namespace std;

class Base
{
public:
	Base(){ m_BaseDate = 5; }
protected:
	int m_BaseDate;
};
struct kkk
{
	int k;
	kkk()
	{
		k = 102;
	}
};
template <class T> 
class Trigger: public Base
{
public:
	Trigger(T data)
	{
		cout<<"非法类型"<<endl;
	}
};
template <>
class Trigger<int>:  public Base
{
public:
	Trigger(int data)
	{
		cout<<data<<endl;
	}
};
template <>
class Trigger<kkk>:  public Base
{
public:
	Trigger(kkk data)
	{
		cout<<data.k<<endl;
	}
};

class Q:public Trigger<int>
{

};

template<class T>
void Recv(T& date)
{
	Trigger<T> triger(date);
}

void Recv1(char* buf)
{
	int *pSTrig = (int *) buf;
	if (NULL == pSTrig)
	{
		return;
	}
	cout<<*pSTrig<<endl;
}

void main()
{
	//传入整型
	int iType = 5;
	Recv(iType);

	kkk kd;
	Recv(kd);

	//传入非法类型
	double dType = 5;
	Recv(dType);

	//传入整型
	Recv1((char*)&iType);

	//传入非法类型
	Recv1((char*)&dType);


	system("pause");
}

/*
5
非法类型
5
0
请按任意键继续. . .
*/


 

你可能感兴趣的:(模板特化和强制转换的问题)