读书人

类模板特化特化有关问题

发布时间: 2012-04-02 19:58:59 作者: rapoo

类模板特化特化问题
这个问题主要是问类模板完全特化,不是成员特化。先上代码
第一个文件: 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里。

读书人网 >C++

热点推荐