gpt4 book ai didi

c++ - 模板编程中的数据成员访问

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:57 27 4
gpt4 key购买 nike

我正在创建一个模板类,它具有针对两种不同尺寸的特殊行为,以及一般类中的一般行为,如下所示::

template<typename T, size_t DIM>
class Dataset
{
public:
// all the constructors are defaulted
// all the general behavior implementation

std::vector<T> _data;
};

考虑到下面类的数据流,我希望能够访问 _data vector ,对吗?!

template<typename T>
class Dataset<T, 1>
{
public:
T & operator()(const size_t & index)
{
return _data[index];
}
};

但是,我得到无法解决_data 的编译错误。这里有什么问题 ?!!谢谢

最佳答案

类模板特化是它自己的类,与主模板无关。所以Dataset<T, 1>没有 _data成员,因为您没有在其类定义中声明一个成员。

如果您需要同一模板的不同特化之间的共同特性,您可以将它们移动到一个共享的基类中。

关于c++ - 模板编程中的数据成员访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43690902/

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