Dalam bahasa tingkat tinggi, kami menggunakan kelebihan beban untuk fungsi, yang digunakan dalam fungsi dengan fungsi yang berbeda tetapi dengan jumlah parameter yang sama, dan templat diperlukan untuk jenis yang berbeda dan jumlah parameter yang sama
Applet C++
- #include<iostream>
- using namespace std;
- template <class T>
- T max(T a,T b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a,b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Salin kode Ini adalah contoh sederhana: kata kunci template<class T> adalah awal dari struktur template, sehingga kita tidak perlu menulis beberapa kode C++ dengan fungsi yang sama berulang kali saat mencari nilai maksimum Perhatikan bahwa saat memanggil fungsi, jenisnya secara otomatis cocok. Itu tidak perlu ditampilkan. Di atas adalah penggunaan paling dasar, tetapi kita akan menghadapi situasi berikut
- #include<iostream>
- using namespace std;
- template <class T,class E>
- E max(T a,E b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a;float b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Salin kode Apa yang harus dilakukan ketika fungsi kita membutuhkan dua jenis yang berbeda, saya pikir Anda dapat memahaminya setelah membaca kode di atas. Tapi bagaimanapun, kesamaan yang mereka miliki adalah bahwa jenisnya secara otomatis cocok. Faktanya, kita juga memiliki kesalahan, jika kita tidak dapat mencocokkan jenisnya dengan baik, yaitu "kepala banteng tidak benar", maka pencocokan otomatis kompiler akan mengubah jenis parameter sesuai dengan aturan konversi tipe implisit, yang pada akhirnya akan menyebabkan hilangnya akurasi hasil. Lihat kodenya, Anda bisa mencoba.
- #include<iostream>
- using namespace std;
- template <class T,class E>
- E max(T a,E b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a;float b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Salin kode Konten di atas tidak terlalu sulit, tetapi ada juga banyak tempat yang bisa dijelajahi, saya tidak tahu apa pendapat Anda |
|