C++ 模板特化是一種技術(shù),它允許你為特定類型提供模板定義的特定實現(xiàn)
下面是一個簡單的示例,展示了如何使用模板特化處理不同的數(shù)據(jù)類型:
#include <iostream>
#include <string>
// 通用模板定義
template <typename T>
class MyClass {
public:
void print() {
std::cout << "通用模板實現(xiàn)" << std::endl;
}
};
// 針對 std::string 類型的特化
template <>
class MyClass<std::string> {
public:
void print() {
std::cout << "針對 std::string 類型的特化實現(xiàn)" << std::endl;
}
};
int main() {
MyClass<int> intObj;
intObj.print(); // 輸出:通用模板實現(xiàn)
MyClass<std::string> strObj;
strObj.print(); // 輸出:針對 std::string 類型的特化實現(xiàn)
return 0;
}
在這個示例中,我們?yōu)?MyClass
類創(chuàng)建了一個通用模板定義,然后針對 std::string
類型進行了特化。當(dāng)使用不同的數(shù)據(jù)類型實例化 MyClass
時,編譯器會根據(jù)類型選擇合適的模板實現(xiàn)。