Warisan templat berfungsi membolehkan kami mencipta templat baharu daripada templat sedia ada dengan menentukan nama templat sebagai kelas asas. Digabungkan dengan warisan, ia memberikan kelebihan penggunaan semula kod, fleksibiliti, kebolehlanjutan dan banyak lagi.
Kolaborasi antara templat fungsi C++ dan warisan
Pengenalan
Templat fungsi membolehkan kami mencipta fungsi dengan gelagat yang sama untuk jenis yang berbeza. Warisan membolehkan kami memperoleh kelas baharu daripada kelas asas yang berkongsi ciri kelas asas dan menambah fungsi baharu. Menggabungkan dua mekanisme berkuasa ini menghasilkan kod yang fleksibel dan boleh digunakan semula.
Warisan templat fungsi
Kita boleh mencipta templat fungsi baharu daripada templat fungsi sedia ada melalui pewarisan. Hanya nyatakan nama templat fungsi sebagai kelas asas. Contohnya:
template<typename T> void print_element(T element) { std::cout << element << std::endl; } // 从 print_element 继承的新函数模板 template<typename T> void print_list(T list) { for (auto element : list) { print_element(element); } }
Contoh praktikal
Mari kita buat kelas untuk mewakili senarai integer:
class IntegerList { public: IntegerList(int size) { list = new int[size]; } ~IntegerList() { delete[] list; } void add(int element) { list[size++] = element; } private: int* list; int size = 0; };
Sekarang, kita boleh menggunakan warisan templat fungsi untuk mencipta fungsi yang mencetak senarai integer:
We// 从 print_element 继承的函数模板 template<typename T> void print_list(T list) { for (auto element : list) { print_element(element); } }
:IntegerList
对象作为参数,并调用 print_list
IntegerList myList(5); myList.add(1); myList.add(2); myList.add(3); print_list(myList); // 输出:1 2 3
Kelebihan
Atas ialah kandungan terperinci Kerjasama antara templat fungsi C++ dan warisan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!