gpt4 book ai didi

C++ 模板类特化和结构

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:40 26 4
gpt4 key购买 nike

我花了几个小时在网上搜索解决方案,但无济于事。我在 Xcode 中编写 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 */ }

编译器提示:重复符号并指出类模板特化。我想这可能是因为构造无法专门化,所以我尝试了一些类似添加额外 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 */ }

但这给了我同样的编译器错误。我真的不知道现在在哪里寻找解决方案...

最佳答案

当你特化一个类模板时,你必须特化所有的成员函数。

除了设置之外,您还需要特化构造函数/析构函数。

template <>
container<data>::container()
{
// ...
}

template <>
container<data>::~container()
{
// ...
}

关于C++ 模板类特化和结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com