Aracılığıyla paylaş


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/vmsderleyici seçeneklerini veya Microsoft'a özgü devralma anahtar sözcüklerini kullanmaya /vmb alternatif olarak bir pointers_to_memberspragma 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ın full_generality . Bu bağımsız değişken her zaman bağımsız değişken tarafından belirtilen işaretçi gösterimini most-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_memberspragma 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