Aracılığıyla paylaş


vtordisp pragma

Gizli vtordisp yapı/imha yer değiştirme üyesinin eklenmesini denetler. vtordisppragma 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 2, , ve /vd2 derleyici seçeneklerine /vd0/vd1karşılık gelen değerlerdir0. 1 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

vtordisppragma 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 vtordisp üyeleri belirtme 0 veya off gizleme. Yalnızca sınıfın oluşturucularının ve yıkıcılarının işaretçi tarafından this işaret edilen nesnede sanal işlevleri çağırma olasılığı yoksa kapatınvtordisp.

veya onbelirtilmesi1, 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