İşlevsellik Düzeylerini Belirtme
Bu makalede, CObject türetilmiş sınıfınıza aşağıdaki işlevsellik düzeylerinin nasıl ekleneceği açıklanmaktadır:
Çalışma zamanı sınıf bilgileri
Dinamik oluşturma desteği
Serileştirme desteği
İşlevlerin CObject
genel açıklaması için CObject'ten Sınıf Türetme makalesine bakın.
Çalışma zamanı sınıf bilgileri eklemek için
CObject'ten
CObject
Sınıf Türetme makalesinde açıklandığı gibi sınıfınızı öğesinden türetin.Burada gösterildiği gibi sınıf bildiriminizde DECLARE_DYNAMIC makroyu kullanın:
class CPerson : public CObject { DECLARE_DYNAMIC(CPerson) // other declarations };
Uygulama dosyasında ( IMPLEMENT_DYNAMIC makroyu kullanın. CPP) öğesini seçin. Bu makro, aşağıdaki gibi sınıfın adını ve temel sınıfını bağımsız değişken olarak alır:
IMPLEMENT_DYNAMIC(CPerson, CObject)
Dekont
IMPLEMENT_DYNAMIC her zaman uygulama dosyasına (. CPP) öğesini seçin. IMPLEMENT_DYNAMIC makro derleme sırasında yalnızca bir kez değerlendirilmelidir ve bu nedenle arabirim dosyasında ( kullanılmamalıdır. H) birden fazla dosyaya dahil edilebilir.
Dinamik oluşturma desteği eklemek için
sınıfınızı öğesinden
CObject
türetin.Sınıf bildiriminde DECLARE_DYNCREATE makroyu kullanın.
Bağımsız değişken içermeyen bir oluşturucu (varsayılan oluşturucu) tanımlayın.
Sınıf uygulama dosyasında IMPLEMENT_DYNCREATE makroyu kullanın.
Serileştirme desteği eklemek için
sınıfınızı öğesinden
CObject
türetin.Serialize
Üye işlevini geçersiz kılın.Dekont
Doğrudan çağırırsanız
Serialize
, yani çok biçimli bir işaretçi aracılığıyla nesneyi seri hale getirmek istemezsiniz, 3 ile 5 arasındaki adımları atlarsınız.Sınıf bildiriminde DECLARE_SERIAL makroyu kullanın.
Bağımsız değişken içermeyen bir oluşturucu (varsayılan oluşturucu) tanımlayın.
Sınıf uygulama dosyasında IMPLEMENT_SERIAL makroyu kullanın.
Dekont
"Çok biçimli işaretçi", bir sınıfın nesnesini (A olarak adlandırılır) veya A'dan türetilen herhangi bir sınıfın nesnesini (örneğin, B) gösterir. Çok biçimli bir işaretçi aracılığıyla seri hale getirmek için çerçevenin, bazı temel sınıftan (A) türetilen herhangi bir sınıfın nesnesi olabileceğinden, seri hale getirmekte olduğu nesnenin (B) çalışma zamanı sınıfını belirlemesi gerekir.
sınıfınızı öğesinden CObject
türetdiğinizde serileştirmeyi etkinleştirme hakkında daha fazla ayrıntı için MFC ve Serileştirme'deki dosyalar makalelerine bakın.