gpt4 book ai didi

c++ - 关于在 C++ 中使用模板的指针数组

转载 作者:行者123 更新时间:2023-11-28 03:42:37 26 4
gpt4 key购买 nike

我有一个如下所示的类:

template <class TValue>
class ICData
{
private :
TValue value;
public:
inline ICData()
{
};
TValue get_value();
void set_value(TValue data);
};

template <class TValue>
TValue ICData<TValue>::get_value()
{
return value;
}

template <class TValue>
void ICData<TValue>::set_value(TValue _value)
{
value=_value;
}

我知道如何通过以下方式制作指针数组:

    ICData <int> *ICArray[10];
ICArray[0]=new ICData<int>();
ICArray[1]=new ICData<int>();

但是有什么方法可以使用模板制作指针数组吗?如下所示:

            template <class T>// iknow this code is WRONG
ICData <T> *ICArray[10];
ICArray[0]=new ICData<int>();
ICArray[1]=new ICData<float>();

提前致谢。

最佳答案

如果你想存储一个可以指向 ICData<int> 的指针或 ICData<float>那么这些类型必须有一个公共(public)基类,您可以使用该公共(public)基类作为要指向的类型。

代表类型 ICData<int>ICData<float>除了使用 void * 之外没有其他关系对于您想要做的事情,没有任何解决方案不涉及一些丑陋的类型转换。

关于c++ - 关于在 C++ 中使用模板的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8642672/

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