pointers_to_members
pragma
C++ Özel
Bir sınıf üyesine yönelik bir işaretçinin ilişkili sınıf tanımından önce bildirilip bildirilemeyeceğini belirtir. İşaretçi boyutunu ve işaretçiyi yorumlamak için gereken kodu denetlemek için kullanılır.
Sözdizimi
#pragma pointers_to_members( best_case )
#pragma pointers_to_members( full_generality
[,
most-general-representation
])
Açıklamalar
kaynak dosyanıza veya /vmg
, /vmm
, /vmv
/vms
derleyici seçeneklerini veya Microsoft'a özgü devralma anahtar sözcüklerini kullanmaya /vmb
alternatif olarak bir pointers_to_members
pragma yerleştirebilirsiniz.
İşaretçi bildirimi bağımsız değişkeni, ilişkili işlev tanımından önce veya sonra bir üyeye işaretçi bildirip bildirmediğinizi belirtir. bağımsız pointer-declaration
değişkeni şu iki simgeden biridir:
full_generality
Güvenli, bazen uygun durumda olmayan kod üretir. Üye işaretçisi ilişkili sınıf tanımından önce bildirilirse kullanınfull_generality
. Bu bağımsız değişken her zaman bağımsız değişken tarafından belirtilen işaretçi gösteriminimost-general-representation
kullanır. ile eşdeğerdir/vmg
.best_case
Üyelere yönelik tüm işaretçiler için en iyi durum gösterimini kullanarak en iyi kodu oluşturur. Bir üyeye işaretçi bildirmeden önce sınıfını tanımlamanızı gerektirir. Varsayılan değer:best_case
.
bağımsız değişkeni, most-general-representation
derleyicinin çeviri birimindeki bir sınıfın üyesine yönelik herhangi bir işaretçiye güvenli bir şekilde başvurmak için kullanması gereken en küçük işaretçi gösterimini belirtir. Bağımsız değişken şu değerlerden biri olabilir:
single_inheritance
En genel gösterim, üye işlevine tek devralma işaretçisidir. ile eşdeğerdir/vmg /vms
. Sınıf tanımının devralma modeli birden çok veya sanalsa hataya neden olur.multiple_inheritance
En genel gösterim, üye işlevine birden çok devralma işaretçisidir. ile eşdeğerdir/vmg /vmm
. Bir sınıf tanımının devralma modeli sanalsa hataya neden olur.virtual_inheritance
En genel gösterim, üye işlevine sanal devralma işaretçisidir. ile eşdeğerdir/vmg /vmv
. Hiçbir zaman hataya neden olmaz.virtual_inheritance
kullanıldığında varsayılan bağımsız değişkendir#pragma pointers_to_members(full_generality)
.
Dikkat
Kaynak kod dosyasına yalnızca etkilemek pointers_to_members
pragma istediğiniz ve yalnızca herhangi bir #include
yönergeden sonra yerleştirmenizi öneririz. Bu uygulama, öğesinin pragma diğer dosyaları etkileme riskini azaltır ve aynı değişken, işlev veya sınıf adı için yanlışlıkla birden çok tanım belirtmenizi sağlar.
Örnek
// Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )
END C++ Özel
Ayrıca bkz.
Pragma yönergeleri ve __pragma
ve _Pragma
anahtar sözcükleri