initializer lists c
C ++ 'daki Başlatıcı Listeleri Hakkında Her Şeyi Ayrıntılı Örneklerle Keşfedin.
C ++, veri üyelerini değerlerine göre başlatmak için başlatıcı listelerini kullanır.
Başlatıcı listeleri çoğunlukla, yapıcı gövdesindeki değerleri başlatmanın mümkün olmadığı belirli durumlarda kullanılır.
modem neye benziyor
=> Ücretsiz C ++ Kursu İçin Buraya Tıklayın.
C ++ 'da Başlatıcı Listeleri
Başlatıcı listesinin genel sözdizimi şöyledir:
constructorName(type value1, type value2):datamember(value1), datamember(value2) { //constructor code }
Başlatıcı listelerinin kullanıldığı bu durumlardan bazıları aşağıda listelenmiştir:
# 1) Üye Nesne Sınıfı için Varsayılan Oluşturucu Sağlanmaz.
Sınıfın üyesi olarak başka bir sınıf nesnesine sahip olduğumuzda ve bu nesnenin sınıfının varsayılan kurucusu yoksa, başlatıcı listesini kullanarak bu veri üyesi nesnesini başlatırız.
Bu, aşağıdaki programda gösterilmektedir.
#include using namespace std; class A { int i; public: A(int ); }; A::A(int val) { i = val; cout << 'Constructor ::A ; i = ' << i << endl; } class B { A a; public: B(int ); }; B::B(int val):a(val) { cout << 'Constructor :: B'; } int main() { B obj(10); return 0; }
Çıktı:
Oluşturucu :: A; i = 10
Oluşturucu :: B
Yukarıdaki programda, A sınıfının nesnesi, B sınıfının bir veri üyesidir. A sınıfında, parametreleştirilmiş bir kurucumuz var ancak varsayılan bir kurucumuz yok. Bu nedenle, A sınıfı nesne oluşturmak için B sınıfındaki başlatıcı listesini kullanmamız gerekir.
# 2) C'yi başlatmak Veri Üyelerimiz.
Const veri üyeleri yalnızca bir kez başlatılabildiğinden, bunları başlatıcı listesini kullanarak başlatırız.
Bunu aşağıdaki Örneği kullanarak gösteriyoruz.
#include using namespace std; class sample { private: const int val; public: sample(int val):val(val) { cout << 'Value is ' << val; } }; int main() { sample obj(10); }
Çıktı:
Değer 10'dur
Yukarıdaki programda veri üyesi olarak bir const'ımız var. Bu const üyesini bir değere ilklendirmemiz gerekirse, bunu gösterildiği gibi başlatıcı listesini kullanarak yaparız.
# 3) Referans Veri Tiplerini Başlatmak İçin.
Sabit referanslar gibi referanslar değişmezdir. Bu nedenle, referans tipi veri üyelerini başlatmamız gerektiğinde, başlatıcı listelerini kullanırız.
Aşağıdaki programda, başlatıcı listesini kullanarak referans veri üyesini başlatıyoruz.
#include using namespace std; class sample { private: int &ref_val; public: sample(int &ref_val):ref_val(ref_val) { cout << 'Value is ' << ref_val; } }; int main() { int ref=10; sample obj(ref); return 0; }
Çıktı:
Değer 10'dur
Bu programda veri üyesi olarak bir referansımız var ve bunu başlatıcı listesini kullanarak başlatıyoruz.
# 4) Üye Adı ve Parametre aynı Ada sahip olduğunda.
java'da nasıl kuyruk bildirilir
Bir sınıfın üye isimleri parametrelerle ilklendirilecekse ve bu parametreler üye isimleriyle aynı isme sahipse, başlatıcı listesini kullanırız. Önceki konularımızda da aynı durum için bu işaretçiyi kullandık. İkinci seçenek, başlatıcı listesidir.
Aşağıdaki programda başlatıcı listesini kullanmak için yukarıdaki Örneği bu işaretçi ile değiştirdik.
#include using namespace std; class Sample { private: int num; char ch; public: Sample(int num,char ch):num(num),ch(ch){ cout<<'num = '< Çıktı:
num = 100
ch = A

Bu programda, aynı isimlere sahip veri üyelerini başlatmak için parametreler geçiyoruz. Bu durumda, bu amaçla başlatıcı listesini kullanırız.
# 5) Performansı Artırmak İçin
Yapıcı gövdesindeki veri üyelerini her başlattığımızda, değerler atanırken veri üyesi için geçici bir nesne oluşturulur. Atama tamamlandığında bu geçici nesne silinir. Bu aslında bir ek yük.
Başlatıcı listesini kullanırsak, diğer yandan, değerleri atamak için bir kopya yapıcı kullanılır. Bu, performansı önemli ölçüde artırır.
Sonuç
Bu nedenle, bu eğitimde, C ++ programlamasında kullanmamız gereken birçok durumla birlikte başlatıcı listelerini öğrendik.
Bu durumlar mevcut olmadığında başlatıcı listesini kullanmamıza gerek olmasa da, bunları her zaman program performansını iyileştirmek için kullanabiliriz.
Yaklaşan eğitimimizde, arkadaş işlevlerini C ++ 'da ayrıntılı olarak tartışacağız.
=> Tam C ++ Öğreticiler listesini Keşfetmek İçin Buraya Bakın.
Önerilen Kaynaklar