类模板特化特化问题
这个问题主要是问类模板完全特化,不是成员特化。先上代码
第一个文件: template.h
#ifndef LEIONEH
#define LEIONEH
#include <iostream>
using namespace std;
template<typename A> class leione
{
public:
leione();
void display(A value)
{
cout<<"通用模板的"<<endl;
}
};
#include "template.cpp"
#endif
第二个文件: template.cpp
#ifndef LEIONECPP
#define LEIONECPP
#include <iostream>
#include "template.h"
template<typename A> leione<A>::leione()
{
cout<<"gouzao"<<endl;
}
#endif
第三个文件intspecial.h
#ifndef INTH
#define INTH
#include <iostream>
#include "template.h"
using namespace std;
template<> class leione<int>
{
public:
leione();
void display(int value);
};
#include "intspecial.cpp"
#endif
第四个文件intspecial.cpp
#ifndef INTCPP
#define INTCPP
#include <iostream>
#include "intspecial.h"
leione<int>::leione()
{
cout<<"gouzao"<<endl;
}
void leione<int>::display(int value)
{
cout<<"特化类int的display"<<endl;
}
#endif
main函数
#include <iostream>
#include "template.h"
using namespace std;
void main()
{
leione<int> object;
}
[解决办法]
因为STL的所有内容都在头文件里所以你只需要包含头文件,事实上模板必须都在头文件里,因为模板是源码级的,不可能编译到lib里。