Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ความเชี่ยวชาญด้านเทมเพลตใน C++


ใน C ++ เทมเพลตจะใช้เพื่อสร้างฟังก์ชันและคลาสทั่วไป ดังนั้นเราจึงสามารถใช้ข้อมูลประเภทใดก็ได้ เช่น int, char, float หรือข้อมูลที่กำหนดโดยผู้ใช้โดยใช้เทมเพลต

ในส่วนนี้ เราจะมาดูวิธีการใช้เทมเพลตเฉพาะทาง ตอนนี้เราสามารถกำหนดเทมเพลตทั่วไปสำหรับข้อมูลประเภทต่างๆ ได้ และฟังก์ชันเทมเพลตพิเศษสำหรับข้อมูลประเภทพิเศษ มาดูตัวอย่างกันดีกว่า

โค้ดตัวอย่าง

#include<iostream>
using namespace std;
template<typename T>
void my_function(T x) {
   cout << "This is generalized template: The given value is: " << x << endl;
}
template<>
void my_function(char x) {
   cout << "This is specialized template (Only for characters): The given value is: " << x << endl;
}
main() {
   my_function(10);
   my_function(25.36);
   my_function('F');
   my_function("Hello");
}

ผลลัพธ์

This is generalized template: The given value is: 10
This is generalized template: The given value is: 25.36
This is specialized template (Only for characters): The given value is: F
This is generalized template: The given value is: Hello

ความเชี่ยวชาญพิเศษของเทมเพลตยังสามารถสร้างขึ้นสำหรับชั้นเรียน ให้เราดูตัวอย่างโดยการสร้างคลาสทั่วไปและคลาสเฉพาะ

โค้ดตัวอย่าง

#include<iostream>
using namespace std;
template<typename T>
class MyClass {
   public:
      MyClass() {
         cout << "This is constructor of generalized class " << endl;
      }
};
template<>
class MyClass <char>{
   public:
      MyClass() {
         cout << "This is constructor of specialized class (Only for characters)" << endl;
      }
};
main() {
   MyClass<int> ob_int;
   MyClass<float> ob_float;
   MyClass<char> ob_char;
   MyClass<string> ob_string;
}

ผลลัพธ์

This is constructor of generalized class
This is constructor of generalized class
This is constructor of specialized class (Only for characters)
This is constructor of generalized class