0Pricing
C++ Academy · Ders

Türleri Dönüştürme

remove_const, decay ve daha fazlası

Türleri Dönüştürme, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.

Tür Dönüşümleri

Sorgulamaya ek olarak <type_traits>, eski türlerden yeni türler üretebilir. Bu özellikler bir ::type üye türü sunar; C++14 ve sonraki sürümlerde bunun için _t kısayolu vardır.

remove_const

std::remove_const_t<const int>, int sonucunu verir. Bir türün değiştirilebilir sürümüne ihtiyaç duyduğunuzda kullanışlıdır.

#include <iostream>
#include <type_traits>

int main() {
    using T = std::remove_const_t<const int>;
    std::cout << std::is_same_v<T, int> << "\n";
    return 0;
}

remove_reference

std::remove_reference_t<int&>, int verir. Bu özellik, kusursuz iletmenin ve genel amaçlı kod yazmanın temelidir.

#include <iostream>
#include <type_traits>

int main() {
    using T = std::remove_reference_t<int&>;
    std::cout << std::is_same_v<T, int> << "\n";
    return 0;
}

add_pointer ve add_const

Dönüşümler niteleyiciler de ekler.

  • add_const_t<int> = const int
  • add_pointer_t<int> = int*
#include <iostream>
#include <type_traits>

int main() {
    using P = std::add_pointer_t<int>;
    std::cout << std::is_same_v<P, int*> << "\n";
    return 0;
}

std::decay

std::decay_t<T>, değere göre geçirirken gerçekleşen dönüşümleri taklit eder: başvuruları ve cv niteleyicilerini kaldırır, dizileri ve işlevleri işaretçilere dönüştürür.

#include <iostream>
#include <type_traits>

int main() {
    using T = std::decay_t<const int&>;
    std::cout << std::is_same_v<T, int> << "\n";
    return 0;
}

Dizi Dönüşümü

decay, tıpkı bir diziyi bir işleve geçirirken olduğu gibi, dizi türünü işaretçiye dönüştürür.

#include <iostream>
#include <type_traits>

int main() {
    using T = std::decay_t<int[5]>;
    std::cout << std::is_same_v<T, int*> << "\n";
    return 0;
}

remove_cv

std::remove_cv_t<const volatile int>, hem const hem de volatile niteleyicilerini kaldırarak düz int sonucunu verir.

#include <iostream>
#include <type_traits>

int main() {
    using T = std::remove_cv_t<const volatile int>;
    std::cout << std::is_same_v<T, int> << "\n";
    return 0;
}

common_type

std::common_type_t<A,B>, her ikisinin de dönüştürülebileceği türü verir; örneğin a + b işleminin sonucu gibi.

#include <iostream>
#include <type_traits>

int main() {
    using T = std::common_type_t<int, double>;
    std::cout << std::is_same_v<T, double> << "\n";
    return 0;
}

underlying_type

Numaralandırmalar için std::underlying_type_t<E>, numaralandırmanın temelindeki tamsayı türünü gösterir.

#include <iostream>
#include <type_traits>

enum class Color : unsigned char { Red, Green };

int main() {
    using U = std::underlying_type_t<Color>;
    std::cout << std::is_same_v<U, unsigned char> << "\n";
    return 0;
}

Dönüşümleri Zincirleme

Dönüşümler birleştirilebilir. İletilen bir türü çoğu zaman standartlaştırmak için bunları birleştirirsiniz; örneğin remove_cv_t<remove_reference_t<T>> ifadesi, decay'in başladığı işlemin özüdür.

Dönüşümler Neden Önemlidir

Genel amaçlı işlevler sıklıkla const T& veya T&& alır, ancak yerel değişkenleri bildirmek ya da dönüş değerleri üretmek için temel türe ihtiyaç duyar. Dönüşüm özellikleri size bu temiz türü sağlar.

Hızlı Kontrol

decay'in ne yaptığını hatırlayın.

Özet

Tür dönüşümlerini öğrendiniz.

  • Özellikler, _t kısayoluyla birlikte ::type sunar
  • remove_const, remove_reference, remove_cv
  • add_pointer, add_const, decay
  • Türetilmiş sonuçlar için common_type, underlying_type

Sıkça Sorulan Sorular

“Türleri Dönüştürme” dersi ücretsiz mi?

Evet — “Türleri Dönüştürme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.

“Türleri Dönüştürme” dersinde ne öğreneceğim?

remove_const, decay ve daha fazlası C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C++ Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Türleri Dönüştürme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Türleri Sorgulama
  2. Türleri Dönüştürme
  3. Koşullu Mantık
  4. Özel Tür Özellikleri Yazma
← C++ Academy Sayfasına Dön