Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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