Aracılığıyla paylaş


Dönüşümleri

Belirli bir sınıf türü nesneleri başka bir tür nesnelere dönüştürülebilir.Bu, kaynak sınıfı türünden hedef sınıfı türünde bir nesne oluşturma ve sonucu hedef nesneye kopyalama tarafından yapılır.Bu işlem, dönüştürme kurucusu tarafından çağrılır.Nesneleri dönüştürme kullanıcı tarafından sağlanan işlevleri tarafından da dönüştürülebilir.

Zaman standart dönüşümler (açıklanan Standart dönüşümler) belirli bir türde dönüştürüleceği derleyici sınıf türü kullanıcı tanımlı dönüştürme işlemi tamamlamanıza yardımcı olmak için tamamen seçebilirsiniz olamaz.Açık Tür Dönüşümleri yanı sıra Dönüşümleri Al ne zaman koyun:

  • Bir başlatıcı ifade başlatılmış nesne aynı türde değil.

  • Bir işlev çağrısında kullanılan bağımsız değişkenin türü işlev bildiriminde belirtilen bağımsız değişkenin türü eşleşmiyor.

  • Bir işlevinden döndürülen nesne türünü işlev bildiriminde belirtilen dönüş türü eşleşmiyor.

  • İki ifade işlenen aynı türde olması gerekir.

  • Yineleme veya seçim ifadesini denetleyen bir deyim sağlanan olandan farklı bir türü gerektirir.

Yalnızca belirli bir kullanıcı tanımlı dönüştürme uygulanır; Aksi durumda, bir hata iletisi oluşturulur.Belirsizlik kullanımı noktasında denetlenir.Bu yüzden, belirsizlik neden özellikleri kullanılmıyorsa, bir sınıf ile olası ambiguities belirlenebilir ve hataları üretmek değil.Ambiguities içinde ortaya çıkan birçok durum olsa da, ambiguities iki önde gelen nedenleri şunlardır:

  • Sınıf türü birden çok devralma kullanılarak türetilir ve dönüştürmeyi seçmek için hangi Temel sınıftan anlaşılır değil (bkz: belirsizlik).

  • Açık tür dönüştürme işleci ve bir kurucu için aynı dönüştürme var (bkz: Dönüştürme işlevleri).

Yapıcı ve dönüşüm tarafından dönüştürme işlevleri tarafından her iki dönüştürme uyacak erişim denetim kuralları başlığı altında açıklandığı gibi Üye erişim denetimi.Erişim denetimi, yalnızca belirli olması için dönüştürme bulunduktan sonra sınanır.

Ek bilgi için bkz: Dönüştürme Kurucular.

Ayrıca bkz.

Başvuru

Özel üye işlevler (C++)