Bagikan melalui


/vmm, , /vms/vmv (Representasi Tujuan Umum)

Digunakan saat /vmg dipilih sebagai metode representasi. Opsi ini menunjukkan model warisan dari definisi kelas yang belum ditemui.

Sintaks

/vmm
/vms
/vmv

Opsi

/vmm
Menentukan representasi penunjuk yang paling umum ke anggota kelas sebagai yang menggunakan beberapa pewarisan.

Kata kunci dan argumen #pragma pointers_to_members warisan yang sesuai adalah multiple_inheritance.

Representasi ini lebih besar dari yang diperlukan untuk warisan tunggal.

Jika Anda menggunakan /vmm dan mendeklarasikan penunjuk ke anggota kelas yang memiliki model pewarisan virtual, kompilator akan menghasilkan kesalahan.

/vms
Menentukan representasi penunjuk yang paling umum ke anggota kelas sebagai yang tidak menggunakan warisan atau pewarisan tunggal. Kata kunci dan argumen #pragma pointers_to_members warisan yang sesuai adalah single_inheritance.

Opsi ini menghasilkan representasi penunjuk sekecil mungkin kepada anggota kelas.

Jika Anda menggunakan /vms dan mendeklarasikan penunjuk ke anggota kelas yang memiliki model beberapa atau pewarisan virtual, kompilator akan menghasilkan kesalahan.

/vmv
Menentukan representasi paling umum dari pointer ke anggota kelas sebagai yang menggunakan pewarisan virtual. Representasi pointer ini tidak pernah menyebabkan kesalahan dan merupakan default.

Kata kunci dan argumen #pragma pointers_to_members warisan yang sesuai adalah virtual_inheritance.

Opsi ini memerlukan penunjuk yang lebih besar dan lebih banyak kode untuk menginterpretasikan penunjuk daripada opsi lainnya.

Keterangan

Di Visual Studio 2019 dan versi yang lebih lama, Microsoft menggunakan representasi yang berbeda (dengan ukuran yang berbeda) untuk jenis pointer-to-member. Penunjuk ke anggota kelas yang tidak memiliki warisan atau warisan tunggal memiliki representasi terkecil. Penunjuk ke anggota kelas yang memiliki beberapa warisan lebih besar. Penunjuk ke anggota kelas yang memiliki warisan virtual adalah yang terbesar. Ketika tidak ada model representasi yang ditentukan untuk pengkompilasi, model defaultnya menggunakan representasi terbesar dan paling umum.

Saat Anda menentukan salah satu opsi model pewarisan ini, model tersebut akan digunakan untuk semua penunjuk ke anggota kelas, apa pun jenis pewarisannya atau apakah Anda mendeklarasikan penunjuk sebelum atau sesudah kelas. Jika Anda selalu menggunakan kelas pewarisan tunggal, Anda dapat mengurangi ukuran kode dengan mengkompilasi dengan /vms. Namun, jika Anda ingin menggunakan kasus paling umum (dengan mengorbankan representasi data terbesar), kompilasi dengan /vmv.

Untuk mengatur opsi pengkompilasi ini di lingkungan pengembangan Visual Studio

  1. Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.

  3. Masukkan opsi pengkompilasi dalam kotak Opsi Tambahan.

Untuk mengatur opsi pengkompilasi ini secara terprogram

Baca juga

/vmb, /vmg (Metode representasi)
Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC