C++/Qt 还支持类模板
时间: 2023-07-05 08:24:12 浏览: 115
是的,C++/Qt支持类模板。类模板是一种通用的类定义,它可以在实例化时替换为具体类型。类模板的定义类似于函数模板,可以使用一个或多个模板参数来表示某种类型或值。当使用类模板时,需要提供实际类型或值来替换模板参数,从而实例化出具体的类。例如,下面是一个简单的类模板定义:
```
template <typename T>
class MyList {
public:
void add(T item);
T get(int index);
private:
T items[100];
int count;
};
template <typename T>
void MyList<T>::add(T item) {
items[count++] = item;
}
template <typename T>
T MyList<T>::get(int index) {
return items[index];
}
```
在上面的例子中,我们定义了一个类模板`MyList`,它可以存储任意类型的元素。我们可以使用`MyList<int>`来创建一个只存储整数的列表,或者使用`MyList<std::string>`来创建一个只存储字符串的列表。在实例化时,编译器会根据提供的实际类型来生成具体的类。
相关问题
C++/Qt模板使用
在 C++/Qt 中,我们可以使用模板来实现泛型编程,让代码具有更好的重用性和扩展性。下面是一个简单的模板示例:
```C++
template<typename T>
T add(T a, T b)
{
return a + b;
}
```
在这个例子中,`typename` 表示类型参数,`T` 是一个占位符,表示任何类型。`add` 函数接受两个类型相同的参数,并返回它们的和。使用时可以这样调用:
```C++
int result1 = add<int>(1, 2); // result1 = 3
double result2 = add<double>(1.5, 2.5); // result2 = 4.0
```
在调用时,需要指定类型参数,这样编译器才能正确地生成函数代码。另外,C++/Qt 还支持类模板、函数模板重载等高级特性,可以更灵活地应用于实际开发中。
阅读全文