C++类模板是一种强大的工具,可以提高代码的复用性。类模板允许你创建泛型类或函数,它们可以处理多种数据类型,而无需为每种数据类型编写重复的代码。以下是一些使用类模板提高复用性的方法:
template <typename T>
class MyContainer {
public:
void add(const T& item) {
items.push_back(item);
}
T get(int index) const {
return items.at(index);
}
private:
std::vector<T> items;
};
template <typename T>
class MyContainer {
// 通用实现
};
template <>
class MyContainer<int> {
// 针对int类型的特化实现
};
template <>
class MyContainer<std::string> {
// 针对std::string类型的特化实现
};
template <typename T, typename U>
class MyPair {
// 通用实现
};
template <typename U>
class MyPair<U, U> {
// 针对两个相同类型的特化实现
};
std::vector
、std::map
、std::shared_ptr
等。这些模板类已经为你处理了许多常见的编程任务,你可以直接使用它们来提高代码的复用性。std::vector<int> numbers;
std::map<std::string, int> word_count;
std::shared_ptr<MyClass> obj;
template <int N>
struct Factorial {
enum { value = N * Factorial<N - 1>::value };
};
template <>
struct Factorial<0> {
enum { value = 1 };
};
总之,C++类模板是一种强大的工具,可以帮助你编写更通用、可复用的代码。通过使用泛型编程、模板特化、模板偏特化、std库中的模板类和模板元编程,你可以充分利用类模板的优势,提高代码的复用性。