我想创建一个至少有一个具有泛型类型的成员变量的结构/类。 T可以是从bitset到char数组的任何东西。让我们称之为“场”。能有一个包含C++类模板的向量吗?
然后,我想有一个包含多个Field对象实例的list/vector/array。
这样的数据结构在C++中是可能的吗?
这是我的解决方案看起来像现在,它不编译因为
错误C3203:“现场”:非专业化的类模板不能作为模板参数 模板参数'_Ty',预计真正的类型
错误C2955: '田':使用类模板需要模板 参数列表
class Main
{
public:
template<typename T> class Field {
public:
CString name;
bool state;
T actualValue;
};
vector<Field> m_Message;
};
...
Field field1 = new Field();
field1.actualValue = 1;
Field field2 = new Field();
field2.actualValue = 1.1;
vector<Field> message;
message.push_back(field1);
message.push_back(field2);
这是我第一次发布堆栈溢出,所以我对任何错误的格式化或问题表示抱歉。
它不是一个模板类,它是一个类模板,也就是构建类的配方。但'矢量'期待一个完整的类型,而不是一个配方。不过,你可能想看看'boost :: any'。 – Deduplicator 2014-10-31 23:23:27
'vector> m_Message;'Main :: Field ??> * field1 = new Main :: Field ??>();' –
101010
2014-10-31 23:25:38
除了上面提到的问题,您可能希望将Main类作为模板,然后使用一个'矢量'里面 –
vsoftco
2014-10-31 23:34:48