Megosztás a következőn keresztül:


Figyelmeztetés C26433

A függvényt meg kell jelölni a override

C++ alapvető irányelvek

C.128: A virtuális függvények pontosan egy virtuális, felülbírálási vagy végleges

A fordítónak nem kell egyértelműen kijelentenie, hogy egy virtuális függvény felülírja a bázisát. Ha a virtuális specifikáció megváltozik az osztályhierarchiában, a karbantartás override során apróbb problémákat okozhat. Emellett csökkenti az olvashatóságot, és kevésbé nyilvánvalóvá teszi a felület polimorfikus viselkedését. Ha egy függvény egyértelműen meg van jelölve override, a fordító ellenőrizheti a felület konzisztenciáját, és segíthet a problémák kiszúrásában, mielőtt futásidőben jelentkeznének.

Jegyzetek

Ez a szabály nem alkalmazható a destruktorokra. A destruktorok saját virtualitási sajátosságokkal rendelkeznek.

A szabály nem jelöli meg a explicit módon megjelölt finalfüggvényeket, ami maga is a virtuális definiáló speciális fajtája.

A figyelmeztetések függvénydefiníciókon jelennek meg, nem deklarációkon. Ez zavaró lehet, mivel a definíciók nem rendelkeznek virtuális definiálókkal, de a figyelmeztetés továbbra is helyes.

Kódelemzés neve: OVERRIDE_EXPLICITLY.

Példa: Implicit felülírás

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

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

Lásd még

C.128: A virtuális függvények pontosan egy virtuális, felülbírálási vagy végleges