Yapıcılar ve Üye Başlatıcı Listeleri
Üyeleri üye başlatıcı listelerini kullanarak temiz bir şekilde başlatın
Yapıcılar ve Üye Başlatıcı Listeleri, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 3. 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.
Kurucu Nedir
Kurucu, bir nesne oluşturulduğunda çalışan özel bir yöntemdir. Sınıfla aynı ada sahiptir ve dönüş türü yoktur.
class Point {
public:
Point() { // default constructor
x_ = 0;
y_ = 0;
}
private:
int x_, y_;
};Parametreli Kurucular
Kurucular parametre alabilir ve birden fazla aşırı yüklemeye sahip olabilir.
class Point {
int x_, y_;
public:
Point() : x_(0), y_(0) {}
Point(int x, int y) : x_(x), y_(y) {}
};Üye Başlatma Listeleri
Gövdenin önündeki : member(value) söz dizimi bir üye başlatma listesidir. Üyeler burada başlatılır; daha sonra gövdenin içinde atanmaz.
class Person {
std::string name_;
int age_;
public:
Person(std::string n, int a) : name_(std::move(n)), age_(a) {}
};Başlatma Listeleri Neden Kullanılır?
Üyeler doğru değerle tam olarak bir kez oluşturulur. Liste olmadan üyeler varsayılan olarak oluşturulur, ardından atanır; bu, karmaşık türler için gereksiz maliyet oluşturur.
Başlatma Sırası
Üyeler, başlatma listesindeki sıraya değil, sınıfta bildirildikleri sıraya göre başlatılır. Karışıklığı önlemek için sıraları eşleştirin.
Sınıf İçinde Varsayılan Başlatıcılar (C++11)
Üyelere varsayılan değerleri doğrudan sınıf gövdesinde verebilirsiniz. Çoğu kurucunun aynı varsayılan değerleri paylaştığı durumlarda kullanışlıdır.
class Buffer {
size_t size_ = 0;
char* data_ = nullptr;
public:
Buffer() = default;
Buffer(size_t n) : size_(n), data_(new char[n]) {}
};= default ve = delete
Derleyiciden özel bir üyeyi sağlamasını veya kaldırmasını isteyin:
class Widget {
public:
Widget() = default; // compiler-generated default
Widget(const Widget&) = delete; // disable copy
};Yetki Devreden Kurucular (C++11)
Bir kurucu, başlatma mantığını paylaşmak için aynı sınıfın başka bir kurucusunu çağırabilir.
class Box {
int w_, h_, d_;
public:
Box(int w, int h, int d) : w_(w), h_(h), d_(d) {}
Box() : Box(1, 1, 1) {} // delegates to the 3-arg ctor
};Açık Kurucular
Tek bağımsız değişkenli kurucular örtük dönüşümlerde kullanılabilir. Beklenmedik dönüşümleri önlemek için onları explicit olarak işaretleyin.
class Vector {
public:
explicit Vector(size_t n);
};
Vector v = 10; // ERROR: explicit prevents this
Vector v(10); // OKYıkıcılar
~ClassName() yıkıcısı, bir nesne yok edildiğinde çalışır. Kaynakları (dosyalar, yuvalar, ham bellek) serbest bırakmak için kullanın.
Beşler Kuralı (Kısa Önizleme)
Özel üye işlevlerinden herhangi birini (yıkıcı, kopyalama kurucusu, kopyalama atama işlevi, taşıma kurucusu, taşıma atama işlevi) yazarsanız beşinin tamamını düşünün. Bunlar taşıma semantiği dersinde ele alınacaktır.
Kısa Sınama
Sınıf üyelerinin başlatılma sırasını ne belirler?
Özet
Nesne durumunu ayarlamak için kurucuları kullanın. Gövde içindeki atamalar yerine üye başlatma listelerini tercih edin. Tek bağımsız değişkenli kurucuları explicit olarak işaretleyin; amacı belirtmek için = default / = delete kullanın.
Sıkça Sorulan Sorular
“Yapıcılar ve Üye Başlatıcı Listeleri” dersi ücretsiz mi?
Evet — “Yapıcılar ve Üye Başlatıcı Listeleri” 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.
“Yapıcılar ve Üye Başlatıcı Listeleri” dersinde ne öğreneceğim?
Üyeleri üye başlatıcı listelerini kullanarak temiz bir şekilde başlatın 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 3. dersidir.
“Yapıcılar ve Üye Başlatıcı Listeleri” 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
- struct ve class: Hangisi Ne Zaman Kullanılmalı
- Üye Değişkenler ve Metotlar
- Yapıcılar ve Üye Başlatıcı Listeleri
- this İşaretçisi ve Kapsülleme