聊聊类模板
我们来聊聊类模板,从基础到实际例子,让你更容易理解。
什么是类模板?
类模板是一种模板,允许我们定义一个可以处理任意数据类型的类。简单来说,就是我们可以编写一个类的“蓝图”,然后在需要的时候使用不同的数据类型来实例化这个类。这样可以避免重复代码,并且使得代码更加灵活。
比如说,汽车的类模板
假设我们打算设计一个汽车类。每辆车都有几个共同特征,比如品牌、型号和速度。但不同的车可以有不同的颜色、发动机类型等。我们可以使用类模板来处理这些不同的特征。
1. 定义类模板
下面是一个简单的类模板,表示一种“汽车”。
template<typename T>
class Car {
private:
T brand; // 品牌
T model; // 型号
int speed; // 速度
public:
// 构造函数
Car(T b, T m, int s) : brand(b), model(m), speed(s) {}
// 打印汽车信息
void printInfo() {
std::cout << "品牌: " << brand << ", 型号: " << model << ", 速度: " << speed << " km/h" << std::endl;
}
};
2. 使用类模板
现在,我们可以使用这个Car
类模板创建不同类型的汽车。例如:
int main() {
Car<std::string> myCar("Toyota", "Corolla", 180); // 使用字符串类型
myCar.printInfo(); // 输出: 品牌: Toyota, 型号: Corolla, 速度: 180 km/h
Car<const char*> anotherCar("Honda", "Civic", 200); // 使用C风格字符串
anotherCar.printInfo(); // 输出: 品牌: Honda, 型号: Civic, 速度: 200 km/h
return 0;
}
总结
通过这个例子,你可以看到,类模板让我们能够创建一个通用的“汽车”类,而不需要因为不同的品牌或型号而定义多个类。这是代码重用和灵活性的一个好例子。