CodeBlanks Logo Icon CodeBlanks

Template sınıf

template<typename T> ile generic sınıf yazmayı öğrenirsin.

Şablon sınıf

Bir şablon sınıf, tür parametresi alan bir sınıftır. Bildirim: template <typename T> class Box { T value; };. Burada T value üyesi, sınıfın tür parametresine bağlıdır.

Örnek oluşturma: Box<int> b;. Tür, açılı parantez içinde yazılır. Derleyici, her tür için ayrı bir sınıf üretir. Box<int> ve Box<double> iki farklı sınıftır. Üye fonksiyonlar da T kullanır; örneğin T getValue().

Şablon sınıf üyeleri

Şablon sınıfın üye fonksiyonları T kullanır. T getValue() { return value; } gibi. Üye fonksiyon, örnek üzerinden çağrılır: Box<int> b(42); b.getValue().

Yapıcı metot da T alabilir: Box(T v) : value(v) {}. Burada : value(v) başlatıcı liste üyeyi kurar. Box<int> b(42) ile value=42 olarak örnek oluşur. b.getValue() 42 döndürür. Şablon sınıflar, tür güvenli kapsülleme sağlar.

Uygulama Box şablon sınıfını yaz

template <typename T> class Box yaz. Özel üye T value, yapıcı Box(T v) : value(v) {}, T getValue() döndürsün. main içinde Box<int> b(42); ve std::cout << b.getValue() << std::endl; yaz.

Başlangıç kodu

main.cpp
#include <iostream>

// Box şablon sınıfını yaz: T value, T getValue()

int main() {
    // Box<int> örneği oluştur ve getValue() yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

template <typename T>
class Box {
    T value;
public:
    Box(T v) : value(v) {}
    T getValue() { return value; }
};

int main() {
    Box<int> b(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 Sınıf bildirimini tamamla

Soru
template <typename T> class ____ { T value; };
Cevap
template <typename T> class Box { T value; };

Açıklama: Sınıf adı PascalCase yazılır: Box.

2 Üyeyi rolüne eşle

Kavram Anlamı
Box<int> int türünde örnek
T value Tür parametreli üye
getValue() Üye fonksiyon
b.getValue() Örnek üzerinden çağrı

3 Box<double> nasıl tanımlanır?

main.cpp
template <typename T> class Box;
  • Box double b;
  • Box<b> double;
  • Box<double> b; Doğru cevap
  • double<Box> b;

Açıklama: Box<double> b; tür açılı parantez içinde yazılır.

Orta seviye bölümündeki tüm dersler