2017-04-20 66 views
4

當我更改虛擬方法的簽名時,它經常發生,繼承類變得抽象。這可能會導致(容易混淆的)錯誤消息顯然完全不相關(原始更改)位置。在這些消息的某處,我讀了「Foo是抽象的」。但解析這些錯誤信息是很乏味的。有沒有辦法強制一個類是而不是抽象?確保一個類不是抽象的

+0

設計更改通常會產生大波紋。您應該儘早穩定界面,以避免此類問題。 –

回答

8

您可以使用override specifier指定派生類中的方法重寫基類中的抽象方法。當您更改基類中方法的簽名時,override指定的方法應該會導致清除編譯器錯誤,因爲它不再覆蓋基類方法。

+0

應該提到的是,自C++ 11以來,關鍵字'override'就在這裏,因此如果它不是隱含的,你將需要在編譯器中啓用它。 – Radek

+0

沒問題。我一直在關注這個類的屬性。我從未想到它可能是該方法的一個屬性。 – choeger

相關問題