Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;模板类专门化和结构_C++_Templates_Struct_Specialization - Fatal编程技术网

C++ 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

我花了几个小时在网上搜索解决方案,但都没有用。我在XCODEP/P>中编程C++
#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()
{
// ...
}

这是什么样的模板专用化?为专门化编写另一个类。这是什么样的模板专门化?为专业化写另一节课。谢谢,就这样。虽然我的模板类有很多函数,它们根本不需要专门化。我想我会制作一个单独的包装器类。谢谢,就这样。虽然我的模板类有很多函数,它们根本不需要专门化。我想我将创建一个单独的包装器类。