Aracılığıyla paylaş


Uyarı C26433

İşlev ile işaretlenmelidir override

C++ Temel Yönergeleri

C.128: Sanal işlevler tam olarak sanal, geçersiz kılma veya son işlevlerden birini belirtmelidir

Bir sanal işlevin tabanını geçersiz kıldığını açıkça belirtmek derleyici tarafından gerekli değildir. Belirtmeme override , sanal belirtim sınıf hiyerarşisinde değişirse bakım sırasında küçük sorunlara neden olabilir. Ayrıca okunabilirliği düşürür ve arabirimin polimorfik davranışını daha az belirgin hale getirir. bir işlev açıkça olarak overrideişaretlenirse, derleyici arabirimin tutarlılığını denetleyebilir ve çalışma zamanında kendilerini bildirmeden önce sorunları tespit etmeye yardımcı olabilir.

Notlar

Bu kural yıkıcılar için geçerli değildir. Yıkıcıların kendi sanallık özellikleri vardır.

Kural, açıkça olarak olarak finalişaretlenen işlevleri işaretlemez. Bu, kendisi de özel bir sanal tanımlayıcı çeşididir.

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 doğru olduğundan bu durum kafa karıştırıcı olabilir.

Kod analizi adı: OVERRIDE_EXPLICITLY

Örnek: Örtük geçersiz kılma

class Shape {
public:
    virtual void Draw() = 0;
    // ...
};

class Ellipse : public Shape {
public:
    void Draw() { // C26433
        //...
    }
};

Ayrıca bkz.

C.128: Sanal işlevler tam olarak sanal, geçersiz kılma veya son işlevlerden birini belirtmelidir