Özet - Şablon temelleri
- C++ kursu
- Orta seviye
- Ders 52/116
- 5 dk
Template fonksiyon ve sınıfı birleştirerek bir Stack<T> yazarsın.
Özet - Şablonlar
Bu grupta şablonların temelini öğrendin. Template, türden bağımsız kod yazar. Şablon fonksiyon çağrısında tür çıkarılır. Şablon sınıf, tür parametresi alır. Birden çok tür parametresi virgülle ayrılır. Specialization, belirli tür için özel sürüm sağlar.
Son görevde bunları birleştireceksin: bir identity şablonu, bir Box şablon sınıfı yazıp Box<int> örneğini identity(42) ile oluşturacaksın. Bu, şablonların nasıl bir araya geldiğini gösterir.
Uygulama Mini görev: Box ve identity birleştir
template <typename T> T identity(T x) yaz; x'i döndürsün. template <typename T> class Box yaz; T value özel üye, Box(T v) : value(v) {} yapıcı, T getValue() döndürsün. main içinde Box<int> b(identity(42)); ve std::cout << b.getValue() << std::endl; yaz.
Başlangıç kodu
#include <iostream>
// identity şablonunu yaz
// Box şablon sınıfını yaz
int main() {
// Box<int> örneğini identity(42) ile oluştur, getValue() yazdır
return 0;
}Örnek çözüm
#include <iostream>
template <typename T>
T identity(T x) { return x; }
template <typename T>
class Box {
T value;
public:
Box(T v) : value(v) {}
T getValue() { return value; }
};
int main() {
Box<int> b(identity(42));
std::cout << b.getValue() << std::endl;
return 0;
}Beklenen çıktı
42
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 template <typename T> ne bildirir?
template <typename T>- Değişken
- Tür parametresi Doğru cevap
- Sınıf
- Fonksiyon
Açıklama: template <typename T> bir tür parametresi bildirir.
2 Şablon sınıf örnekleme
Box<____> b;
Box<int> b;
Açıklama: Box<int> b; int türünde şablon sınıf örneğidir.
3 Kavramları eşle
| Kavram | Anlamı |
|---|---|
template <typename T> |
Genel şablon |
template <> |
Tam özelleştirme |
Box<int> |
Sınıf örnekleme |
identity(42) |
Fonksiyon çağrısı |