Uyarı C26443
Yıkıcı geçersiz kılınırken açık 'geçersiz kılma' veya 'sanal' tanımlayıcıları kullanılmamalıdır.
Bu uyarı, C++ Çekirdek Yönergelerinde C.128'de yapılan değişiklikleri yansıtmak için Visual Studio 16.8'de kaldırıldı.
C++ Temel Yönergeleri
C.128: Sanal işlevler tam olarak sanal, geçersiz kılma veya son değerlerden birini belirtmelidir.
Temel Yönergelerle ilgili geçerli fikir birliği, yıkıcıları 'açıkça geçersiz kıl' önerisinin dışında tutmaktır.
Notlar
- Kural, açıkça 'sanal' veya 'geçersiz kılma' tanımlayıcılarını kullanan yıkıcıları geçersiz kılmaya bayrak ekler.
- Yıkıcılar özel semantiği nedeniyle 'final' tanımlayıcısını kullanmaya devam edebilir.
- Uyarılar, bildirimlerde değil işlev tanımlarında gösterilir. Tanımlarda sanal tanımlayıcılar olmadığından, ancak uyarı yine de uygun olduğundan bu durum kafa karıştırıcı olabilir.
Kod analizi adı: NO_EXPLICIT_DTOR_OVERRIDE
Örnek: Açık 'geçersiz kılma'
class Transaction {
public:
virtual ~Transaction();
// ...
};
class DistributedTransaction : public Transaction {
public:
~DistributedTransaction() override { // C26443
// ...
}
};
Ayrıca bkz.
C.128: Sanal işlevler tam olarak sanal, geçersiz kılma veya son işlevlerden birini belirtmelidir
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin