CodeBlanks Logo Icon CodeBlanks

Özet - Şablon temelleri

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

main.cpp
#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

main.cpp
#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?

main.cpp
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

Soru
Box<____> b;
Cevap
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ı

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