qt5的struct MyStruct1 { int x; int y; }; struct MyStruct2 { int x; QString y; }; // 定义一个模板类(泛型类),使用 MyStruct1 和 结构体作为类型参数 template<typename T> class MyTemplateClass { public: MyTemplateClass(T t) : m_t(t) {} T value() const { return m_t; } private: T m_t; QMap<QString,QVector<T>>t_map; QMap<QString,QVector<T>>old_map; QCache<QString,QVector<T>>t_cache; QVector<T>t_vctor; };初始化不赋值
时间: 2024-02-25 08:53:30 浏览: 108
好的,你的问题是关于一个泛型类的定义和初始化。对于你给出的代码,我们可以定义一个泛型类 `MyTemplateClass`,并使用 `MyStruct1` 和 `MyStruct2` 作为类型参数。在类中,我们有一个私有成员变量 `m_t`,它的类型是模板参数 `T`,还有其他一些私有成员变量,包括一个 `QMap` 对象和一个 `QCache` 对象。下面是这个泛型类的定义:
```cpp
template<typename T>
class MyTemplateClass {
public:
MyTemplateClass(T t) : m_t(t) {}
T value() const { return m_t; }
private:
T m_t;
QMap<QString, QVector<T>> t_map;
QMap<QString, QVector<T>> old_map;
QCache<QString, QVector<T>> t_cache;
QVector<T> t_vctor;
};
```
如果你想要初始化这个泛型类的对象,可以按照以下方式进行:
```cpp
MyTemplateClass<MyStruct1> obj1(MyStruct1{});
MyTemplateClass<MyStruct2> obj2(MyStruct2{});
```
这样就可以创建两个对象 `obj1` 和 `obj2`,它们的模板参数分别为 `MyStruct1` 和 `MyStruct2`,并且都是使用默认构造函数来初始化的。
阅读全文
相关推荐














