vtordisp pragma

Gizli vtordisp yapı/imha yer değiştirme üyesinin eklenmesini denetler. vtordisp pragma C++'a özeldir.

Sözdizimi

#pragma vtordisp( [ push, ] n)
#pragma vtordisp(pop)
#pragma vtordisp()
#pragma vtordisp( [ push, ] { on | off } )

Parametreler

push
geçerli vtordisp ayarı iç derleyici yığınına iletir ve yeni vtordisp ayarı n olarak ayarlar. n belirtilmezse geçerli vtordisp ayar değiştirilmez.

pop
İç derleyici yığınından en üstteki kaydı kaldırır ve ayarı kaldırılan değere geri yükler vtordisp .

n
Ayar için vtordisp yeni değeri belirtir. Olası değerler , , veya 0, , ve 1 derleyici seçeneklerine 2/vd0karşılık gelen değerlerdir/vd1. /vd2 Daha fazla bilgi için bkz /vd . (Yapı Yer Değiştirmelerini Devre Dışı Bırakma).

on
ile eşdeğerdir #pragma vtordisp(1).

off
ile eşdeğerdir #pragma vtordisp(0).

Açıklamalar

vtordisp pragma yalnızca sanal tabanları kullanan kodlar için geçerlidir. Türetilmiş bir sınıf, bir sanal temel sınıftan devraldığı bir sanal işlevi geçersiz kılarsa ve türetilmiş sınıf için bir oluşturucu veya yıkıcı sanal temel sınıfına bir işaretçi kullanarak bu işlevi çağırırsa, derleyici sanal temelleri olan sınıflara fazladan gizli vtordisp alanlar ekleyebilir.

, vtordisppragma onu izleyen sınıfların düzenini etkiler. /vd0, /vd1ve /vd2 derleyici seçenekleri, tam modüller için aynı davranışı belirtir. Gizli 0 üyeleri belirtme off veya vtordisp gizleme. Yalnızca sınıfın oluşturucularının ve yıkıcılarının işaretçi tarafından vtordisp işaret edilen nesnede sanal işlevleri çağırma olasılığı yoksa kapatınthis.

veya 1belirtilmesion, varsayılan olarak gizli vtordisp üyeleri gerekli oldukları yerde etkinleştirir.

Belirtme, 2 sanal işlevlere sahip tüm sanal temeller için gizli vtordisp üyeleri etkinleştirir. #pragma vtordisp(2) kısmen değiştirilebilir bir nesnenin performansının dynamic_cast doğru olduğundan emin olmak için gerekli olabilir. Daha fazla bilgi için bkz . Derleyici Uyarısı (düzey 1) C4436.

#pragma vtordisp(), bağımsız değişken olmadan ayarı ilk ayarına geri yükler vtordisp .

#pragma vtordisp(push, 2)
class GetReal : virtual public VBase { ... };
#pragma vtordisp(pop)

Ayrıca bkz.

Pragma yönergeleri ve __pragma ve _Pragma anahtar sözcükleri