Kurucular bildirmek için kurallar
Bir kurucu, sınıf ile aynı ada sahip.Aşırı yüklü işlevlerin bir kurala bağlı herhangi bir sayýda yapıcılar bildirilebilir.(Daha fazla bilgi için bkz: Overloading.)
class-name ( argument-declaration-list )
Notlar
argument-declaration-list Boş olabilir.
C++ tanımlayan iki özel tür Kurucular varsayılan ve aşağıdaki tabloda açıklanan Kurucular kopyalayın.
Varsayılan ve kopya oluşturucuları
Yapım türü |
Değişkenler |
Purpose |
---|---|---|
Varsayılan Oluşturucu |
Bağımsız değişken olmadan çağrılabilecek |
Bir varsayılan nesne sınıfı türü oluşturma |
Kurucu kopyalama |
Başvurunun aynı sınıf türü için tek bir bağımsız değişken kabul edebilirsiniz |
Kopya nesne sınıfı türü |
Varsayılan Oluşturucusu bağımsız değişken olmadan çağrılabilir.Ancak, tüm bağımsız değişkenlerinin varsayılan değerleri varsa bir bağımsız değişken listesi bir varsayılan kurucu bildirebilir.Benzer şekilde, kopya oluşturucuları başvurunun aynı sınıf türü için tek bir bağımsız değişken kabul etmeniz gerekir.Daha fazla bağımsız değişken tarafından sağlanan, izleyen bağımsız değişkenlerin tümü varsayılan olması koşuluyla.
Herhangi bir Kurucular sağlamazsanız, derleyici varsayýlan bir kurucu dener.Bir kopya kurucu sağlamazsanız, derleyici üretmeniz dener.Bu derleyici tarafından oluşturulmuş Kurucular ortak üye işlevleri olarak kabul edilir.Bir nesne ve bir başvuru ilk bir bağımsız bir kopyasını kurucu belirtirseniz, bir hata oluşturulur.
(Vftables ve vbtables, başlatır daha önce açıklandığı gibi) nesnesi, bir derleyici tarafından oluşturulan varsayılan kurucu ayarlar ve temel sınıflar ve üyeleri için varsayılan kurucusuna çağırır, ancak başka bir eylemi gerçekleştirir.Yalnızca Bunlar varsa, erişilebilir ve kesindir temel sınıf ve üye yapıcılar adlandırılır.
Derleyici tarafından oluşturulan kopyası yapıcı yeni bir nesnesini ayarlar ve memberwise kopyalanacak nesnenin içeriğinin kopyasını gerçekleştirir.Temel sınıf veya üye Kurucular varsa verilir; Aksi takdirde Bitsel kopyalama gerçekleştirilir.
Bir sınıfın tüm temel ve üye sınıflarını type kabul kopya oluşturucuları olan bir const derleyici tarafından oluşturulan kopyası yapıcı bir değişken kabul eder, tek bir bağımsız değişken türü consttypeve. Aksi halde, tek bir bağımsız değişken türü derleyicinin ürettiði kopya kurucusu kabul typeve.
Bir kurucu başlatmak için kullanabileceğiniz bir const veya volatile nesne ancak oluşturucu bildirilemez olarak const veya volatile.Yalnızca yasal depolama sınıfı için bir kurucu olan satır içi; diğer depolama sınıfı değiştiricisi, kullanmak da dahil olmak üzere __declspec anahtar sözcüğü bir oluşturucuya sahip bir derleyici hatasına neden oluyor.
Durağan üye işlevleri çağırma stdcall kullanılır ve bildirilen genel işlevler ile çaðrý standardýný anahtar sözcüğünü ve bir değişken bağımsız değişken listesi kullanmayın.Kullandığınızda çaðrý standardýný bir kurucu gibi bir statik olmayan üye işlev anahtar sözcüğü derleyici çağırma thiscall kullanacaktır. "
Temel sınıflar Kurucular türetilmiş sınıflar tarafından miras alınmaz.Türetilmiş bir sınıf türünde bir nesne oluşturulduğunda, temel sınıf bileşenleri ile başlayan oluşturulur; ardından türetilmiş sınıf bileşenlerini taşır.Bu bölümü tam nesne başlatılmamış gibi derleyici her temel sınıfın yapıcısını kullanır (açıklandığı gibi sanal türetme durumlarda hariç Başlatırken temel sınıflar).