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庫中的模板類和模板元編程,你可以充分利用類模板的優勢,提高代碼的復用性。