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 intadd_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,
_tkısayoluyla birlikte::typesunar remove_const,remove_reference,remove_cvadd_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
- Türleri Sorgulama
- Türleri Dönüştürme
- Koşullu Mantık
- Özel Tür Özellikleri Yazma