Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara menambahkan tingkat fungsionalitas berikut ke kelas turunan CObject Anda:
Informasi kelas run-time
Dukungan pembuatan yang dinamis
Dukungan serialisasi
Untuk deskripsi CObject
umum fungsionalitas, lihat artikel Mendapatkan Kelas dari CObject.
Untuk menambahkan informasi kelas run-time
Dapatkan kelas Anda dari
CObject
, seperti yang dijelaskan dalam artikel Turunan Kelas dari CObject .Gunakan makro DECLARE_DYNAMIC dalam deklarasi kelas Anda, seperti yang ditunjukkan di sini:
class CPerson : public CObject { DECLARE_DYNAMIC(CPerson) // other declarations };
Gunakan makro IMPLEMENT_DYNAMIC dalam file implementasi (. CPP) kelas Anda. Makro ini mengambil sebagai argumen nama kelas dan kelas dasarnya, sebagai berikut:
IMPLEMENT_DYNAMIC(CPerson, CObject)
Nota
Selalu masukkan IMPLEMENT_DYNAMIC dalam file implementasi (. CPP) untuk kelas Anda. Makro IMPLEMENT_DYNAMIC harus dievaluasi hanya sekali selama kompilasi dan oleh karena itu tidak boleh digunakan dalam file antarmuka (. H) yang berpotensi disertakan dalam lebih dari satu file.
Untuk menambahkan dukungan pembuatan dinamis
Dapatkan kelas Anda dari
CObject
.Gunakan makro DECLARE_DYNCREATE dalam deklarasi kelas.
Tentukan konstruktor tanpa argumen (konstruktor default).
Gunakan makro IMPLEMENT_DYNCREATE dalam file implementasi kelas.
Untuk menambahkan dukungan serialisasi
Dapatkan kelas Anda dari
CObject
.Menimpa fungsi anggota
Serialize
.Nota
Jika Anda memanggil
Serialize
secara langsung, yaitu, Anda tidak ingin membuat serialisasi objek melalui penunjuk polimorfik, hilangkan langkah 3 hingga 5.Gunakan makro DECLARE_SERIAL dalam deklarasi kelas.
Tentukan konstruktor tanpa argumen (konstruktor default).
Gunakan makro IMPLEMENT_SERIAL dalam file implementasi kelas.
Nota
"Pointer polimorfik" menunjuk ke objek kelas (sebut saja A) atau ke objek kelas apa pun yang berasal dari A (katakanlah, B). Untuk melakukan serialisasi melalui penunjuk polimorfik, kerangka kerja harus menentukan kelas run-time objek yang diserialisasi (B), karena bisa jadi merupakan objek dari kelas apa pun yang berasal dari beberapa kelas dasar (A).
Untuk detail selengkapnya tentang cara mengaktifkan serialisasi saat Anda mendapatkan kelas Anda dari CObject
, lihat artikel File di MFC dan Serialisasi.