Share via


Derleyici Uyarısı C5243

'type': tamamlanmamış 'class-name' sınıfı kullanmak ABI sınırlaması nedeniyle ODR ihlaline neden olabilir. Sınıfın ileriye doğru bildiriminde devralma anahtar sözcüğünü belirterek soruna geçici çözüm bulabilirsiniz.

Açıklamalar

Microsoft C++ ABI birden fazla tür işaretçiden üyeye türü kullanır. Bu türlerin, sınıfı tarafından kullanılan devralma modeline bağlı farklı boyutları vardır. C++ standardı, tamamlanmamış bir sınıf türünün üye işaretçisini bildirmenizi sağlar. Tamamlanmamış bir sınıf için işaretçiden üyeye türünün değişkenini bildirirseniz, derleyicinin en genel gösterimi kullanması gerekir. Derleyici, tam sınıf türünün kullanılabilir olduğu diğer çeviri birimlerinde bu işaretçiden üyeye türü için daha küçük, daha özel bir gösterim kullanabileceğinden, tek bir tanım kuralına veya ODR ihlaline yol açabilir.

Bu hatayı çözmek için, üyeye işaretçi değişkenini bildirmeden önce tam sınıf türünü belirtebilirsiniz. Alternatif olarak, tamamlanmamış ileriye doğru sınıf bildiriminde doğru devralma modelini belirtmek için Microsoft'a özgü devralma anahtar sözcüğünü de kullanabilirsiniz.

Derleyici Uyarısı C5243, Visual Studio 2019 sürüm 16.10'da yenidir ve varsayılan olarak kapalıdır. Bu uyarıyı etkinleştirme hakkında daha fazla bilgi için bkz . Varsayılan olarak kapalı olan derleyici uyarıları.

Ayrıca bkz.

Devralma anahtar sözcükleri