C++ C++;模板类专门化和结构
我花了几个小时在网上搜索解决方案,但都没有用。我在XCODEP/P>中编程C++C++ C++;模板类专门化和结构,c++,templates,struct,specialization,C++,Templates,Struct,Specialization,我花了几个小时在网上搜索解决方案,但都没有用。我在XCODEP/P>中编程C++ #import "data.h" // contains a struct called data template <class T> class container { public: container(); ~container(); private: // functionality for containing T }; t
#import "data.h" // contains a struct called data
template <class T>
class container {
public:
container();
~container();
private:
// functionality for containing T
};
template <class T>
container<T>::container() { /* generic */ }
template <class T>
container<T>::~container() { /* generic */ }
template <>
container<data>::container() { /* template specialization of data */ }
#import“data.h”//包含一个名为data的结构
模板
类容器{
公众:
容器();
~container();
私人:
//包含T的功能
};
模板
容器::容器(){/*泛型*/}
模板
容器::~container(){/*generic*/}
模板
容器::容器(){/*数据的模板专门化*/}
编译器抱怨:重复符号并指出类模板专门化。我想这可能是因为构造无法专门化,所以我尝试了一些类似的方法,添加一个额外的void函数
template <class T>
class container {
public:
container();
~container();
void setup();
private:
// functionality for containing T
};
template <>
void container<data>::setup() { /* template specialization of data */ }
模板
类容器{
公众:
容器();
~container();
无效设置();
私人:
//包含T的功能
};
模板
void container::setup(){/*数据的模板专门化*/}
但这给了我同样的编译器错误。我现在真的不知道在哪里寻找解决方案…当您专门化一个类模板时,您必须专门化所有成员函数 除了设置之外,还需要专门化构造函数/析构函数
template <>
container<data>::container()
{
// ...
}
template <>
container<data>::~container()
{
// ...
}
模板
容器::容器()
{
// ...
}
模板
容器::~container()
{
// ...
}
专门化类模板时,必须专门化所有成员函数
除了设置之外,还需要专门化构造函数/析构函数
template <>
container<data>::container()
{
// ...
}
template <>
container<data>::~container()
{
// ...
}
模板
容器::容器()
{
// ...
}
模板
容器::~container()
{
// ...
}
这是什么样的模板专用化?为专门化编写另一个类。这是什么样的模板专门化?为专业化写另一节课。谢谢,就这样。虽然我的模板类有很多函数,它们根本不需要专门化。我想我会制作一个单独的包装器类。谢谢,就这样。虽然我的模板类有很多函数,它们根本不需要专门化。我想我将创建一个单独的包装器类。