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ığı desteklenmeye devam ediyor. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
Bu makalede , CObject'ten bir sınıf türetmek için gereken en düşük adımlar açıklanmaktadır. Diğer CObject sınıf makaleleri, serileştirme ve tanılama hata ayıklama desteği gibi belirli CObject özelliklerden yararlanmak için gereken adımları açıklar.
tartışmalarında CObject"arabirim dosyası" ve "uygulama dosyası" terimleri sık sık kullanılır. Arabirim dosyası (genellikle üst bilgi dosyası veya .H dosyası olarak adlandırılır) sınıf bildirimini ve sınıfı kullanmak için gereken diğer bilgileri içerir. Uygulama dosyası (veya . CPP dosyası) sınıf tanımının yanı sıra sınıf üyesi işlevlerini uygulayan kodu içerir. Örneğin, CPerson adlı bir sınıf için genellikle PERSON.H adında bir arabirim dosyası ve PERSON.CPP adında bir uygulama dosyası oluşturursunuz. Ancak, uygulamalar arasında paylaşılmayan bazı küçük sınıflar için, bazen arabirimi ve uygulamayı tek bir .CPP dosyasında birleştirmek daha kolaydır.
CObject öğesinden bir sınıf türetirken dört işlev düzeyinden birini seçebilirsiniz.
Temel işlevsellik: Çalışma zamanı sınıf bilgileri veya serileştirme desteği yoktur, ancak tanılama bellek yönetimi içerir.
Temel işlevsellik artı çalışma zamanı sınıf bilgileri için destek.
Temel işlevsellik artı çalışma zamanı sınıf bilgisi ve dinamik oluşturma desteği.
Temel işlevselliğin yanı sıra çalışma zamanı sınıf bilgileri, dinamik oluşturma ve serileştirme desteği.
Yeniden kullanım için tasarlanan sınıflar (daha sonra temel sınıf görevi görecek sınıflar), gelecekteki serileştirme gereksinimi öngörülmesi durumunda en azından çalışma zamanı sınıf desteği ve serileştirme desteği içermelidir.
içinden türetdiğiniz CObjectsınıfların bildiriminde ve uygulamasında belirli bildirim ve uygulama makrolarını kullanarak işlev düzeyini seçersiniz.
Aşağıdaki tabloda, serileştirme ve çalışma zamanı bilgilerini desteklemek için kullanılan makrolar arasındaki ilişki gösterilmektedir.
Serileştirme ve Run-Time Bilgileri için Kullanılan Makrolar
| Kullanılan makro | CObject::IsKindOf | CRuntimeClass:: CreateObject |
CArchive::operator>> CArchive::operator<< |
|---|---|---|---|
Temel CObject işlevsellik |
Hayı | Hayı | Hayı |
DECLARE_DYNAMIC |
Evet | Hayı | Hayı |
DECLARE_DYNCREATE |
Evet | Evet | Hayı |
DECLARE_SERIAL |
Evet | Evet | Evet |
Temel CObject işlevselliğini kullanmak için
Sınıfınızı
CObject(veyaCObject'den türetilmiş bir sınıftan) türetmek için normal C++ söz dizimini kullanın.Aşağıdaki örnek,
CObjectöğesinden bir sınıf türetmenin en basit durumunu göstermektedir.class CSimple : public CObject { // add CSimple-specific members and functions... };
Ancak normalde, yeni sınıfınızın ayrıntılarını işlemek için bazı CObjectüye işlevlerini geçersiz kılmak isteyebilirsiniz. Örneğin, sınıfınızın içeriği için hata ayıklama çıkışı sağlamak amacıyla Dump işlevini geçersiz kılmak CObject isteyebilirsiniz. öğesini geçersiz kılma Dumphakkında ayrıntılı bilgi için Nesne Dökümü Özelleştirme makalesine bakın. Ayrıca, sınıf nesnelerinin veri üyelerinin tutarlılığını doğrulamak için özelleştirilmiş testler sağlamak amacıyla, AssertValid işlevinin CObject fonksiyonunu geçersiz kılmak isteyebilirsiniz. geçersiz kılmanın AssertValidaçıklaması için bkz. MFC ASSERT_VALID ve CObject::AssertValid.
İşlevsellik Düzeylerini Belirtme makalesi, çalışma zamanı sınıf bilgileri, dinamik nesne oluşturma ve serileştirme gibi diğer işlev düzeylerini belirtmeyi açıklar.