По сути, мне нужна функциональность компилятора C # его ключевого слова override
в моем коде C ++.
class Base
{
virtual int foo(int) const;
};
class Derived : public Base
{
virtual int foo(int); // wanted to override Base, but forgot to declare it const
};
Как мы все знаем, приведенный выше код прекрасно скомпилируется, но приводит к некоторому странному поведению во время выполнения.Я хотел бы, чтобы мой компилятор C ++ ловил мою плохую реализацию чем-то вроде ключевого слова C # override
.Существуют ли какие-либо ключевые слова, такие как «переопределение», вводимые в C ++, или мы застряли с #define override virtual
, чтобы показать наше намерение?(на самом деле я этого не делаю - я ненавижу использовать препроцессор для «расширения» языка).