Aracılığıyla paylaş


CObject'ten Sınıf Türetme

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 olarak adlandırılır). H dosyası) sınıf bildirimini ve sınıfını 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, adlı CPersonbir sınıf için genellikle PERSON adlı bir arabirim dosyası oluşturursunuz. H ve PERSON adlı bir uygulama dosyası. CPP. Ancak, uygulamalar arasında paylaşılmayan bazı küçük sınıflar için, bazen arabirimi ve uygulamayı tek bir içinde birleştirmek daha kolaydır. CPP dosyası.

öğesinden bir sınıf CObjecttürerken dört işlev düzeyi arasından seçim yapabilirsiniz:

  • 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 ve çalışma zamanı sınıf bilgileri için destek.

  • Temel işlevsellik ve çalışma zamanı sınıf bilgileri ve dinamik oluşturma desteği.

  • Temel işlevsellik ve ç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 Çalışma Zamanı Bilgileri için Kullanılan Makrolar

Kullanılan makro CObject::IsKindOf Cruntimeclass::

CreateObject
CArchive::operator>>

CArchive::operator<<
Temel CObject işlevsellik Hayır Hayı Hayı
DECLARE_DYNAMIC Evet Hayı Hayı
DECLARE_DYNCREATE Evet Evet Hayır
DECLARE_SERIAL Evet Evet Evet

Temel CObject işlevselliğini kullanmak için

  1. sınıfınızı (veya öğesinden CObject türetilen bir sınıftan) türetmek için normal C++ söz dizimini CObjectkullanın.

    Aşağıdaki örnekte, en basit durum olan öğesinden CObjectbir sınıfın türetilmesi gösterilmektedir:

    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, genellikle sınıfınızın içeriği için hata ayıklama çıkışı sağlamak üzere işlevini CObject geçersiz kılmak Dump 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 AssertValid veri üyelerinin tutarlılığını doğrulamak için özelleştirilmiş test sağlamak için işlevini CObject 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.

Ayrıca bkz.

CObject Kullanma