Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Microsoft Foundation Sınıfları (MFC) kitaplığına destek verilmeye devam ediliyor. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
Tür atama makroları, belirli bir işaretçiyi belirli bir sınıfın nesnesine işaret eden bir işaretçiye atamanın bir yolunu sağlar ve atamanın yasal olup olmadığını denetler.
Aşağıdaki tabloda MFC türü atama makroları listeleniyor.
İşaretçileri MFC Sınıf Nesnelerine Dönüştüren Makrolar
| Veri Akışı Adı | Açıklama |
|---|---|
| DYNAMIC_DOWNCAST | Atamanın yasal olup olmadığını denetlerken bir işaretçiyi sınıf nesnesine dönüştürür. |
| STATIC_DOWNCAST | bir işaretçiyi bir sınıftan ilgili tür işaretçisine bir nesneye dönüştürür. Hata ayıklama derlemesinde, nesne hedef türün "türü" değilse BIR ASSERT'a neden olur. |
DYNAMIC_DOWNCAST
Atamanın yasal olup olmadığını denetlerken işaretçiyi bir sınıf nesnesine işaretçiye dönüştürmenin kullanışlı bir yolunu sağlar.
DYNAMIC_DOWNCAST(class, pointer)
Parametreler
class
Sınıfın adı.
Işaretçi
Sınıf türünde bir nesneye yönelik bir işaretçiye atanacak işaretçi.
Açıklamalar
Makro, işaretçi parametresini sınıf parametresinin türündeki bir nesneye bir işaretçiye dönüştürür.
İşaretçi tarafından başvuruda bulunılan nesne tanımlanan sınıfın "türü" ise, makro uygun işaretçiyi döndürür. Yasal bir atama değilse, makro NULL döndürür.
STATIC_DOWNCAST
pobject öğesini bir işaretçiye class_name nesnesine dönüştürür.
STATIC_DOWNCAST(class_name, pobject)
Parametreler
class_name
Türüne geçirilmekte olan sınıfın adı.
pobject
bir işaretçiye class_name nesnesine atanacak işaretçi.
Açıklamalar
pobject NULL olmalıdır veya doğrudan veya dolaylı olarak class_name türetilmiş bir sınıfın nesnesine işaret etmelidir. Uygulamanızın _DEBUG ön işlemci simgesi tanımlanmış derlemelerinde, pobject NULL değilse veya class_name parametresindebelirtilen sınıfın "türü" olmayan bir nesneye işaret ederse makro ASSERT olur (bkz. CObject::IsKindOf). _DEBUG olmayan derlemelerde, makro herhangi bir tür denetimi yapmadan dönüştürme işlemini gerçekleştirir.
class_nameCObjectaçıklandığı gibi öğesinden türetilmelidir ve DECLARE_DYNAMIC ve IMPLEMENT_DYNAMIC, DECLARE_DYNCREATE ve IMPLEMENT_DYNCREATE ya da DECLARE_SERIAL ve IMPLEMENT_SERIAL makrolarını kullanmalıdır.
Örneğin, adlı bir işaretçiyiCMyDocpMyDoc, şu ifadeyi kullanmak üzere bir işaretçiye CDocument dönüştürebilirsiniz:
CDocument* pDoc = STATIC_DOWNCAST(CDocument, pMyDoc);
doğrudan veya dolaylı olarak öğesinden pMyDoctüretilen bir nesneye işaret etmiyorsaCDocument, makro ASSERT olur.