Yüksek seviyeli dillerde, fonksiyonlar için overload kullanılır; bu, farklı fonksiyonlara sahip ancak aynı sayıda parametreye sahip fonksiyonlarda kullanılır ve farklı türler ve aynı sayıda parametre için şablonlar gereklidir
C++ applet
- #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;
- }
Kopya kodu Bu basit bir örnektir: anahtar kelime şablonu<sınıfı T> bir şablon yapısının başlangıcıdır, böylece maksimum değeri ararken aynı fonksiyonla birkaç C++ kodunu tekrar tekrar yazmak zorunda kalmayız Bir fonksiyon çağrıldığında, tipi otomatik olarak eşleşir. Gösterilmesine gerek yok. Yukarıdaki en temel kullanım şeklidir, ancak aşağıdaki durumlarla karşılaşacağız
- #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;
- }
Kopya kodu Fonksiyonumuzun iki farklı türe ihtiyacı olduğunda ne yapacağımızı düşünüyorum, yukarıdaki kodu okuduktan sonra anlayabileceğinizi düşünüyorum. Ama her neyse, ortak noktaları tiplerin otomatik olarak eşleşmesidir. Aslında, hatalar da var; eğer tipi iyi eşleştiremezsek, yani "öküz kafası doğru değil", derleyicinin otomatik eşleştirmesi örtük tip dönüşüm kurallarına göre parametre tipini değiştirir ve bu da sonucun doğruluğunun kaybına yol açar. Koda bak, deneyebilirsin.
- #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;
- }
Kopya kodu Yukarıdaki içerik çok zor değil ama keşfedilebilecek birçok yer de var, sizin ne düşünceniz olduğunu bilmiyorum |
|