Я знаю, почему и как работают виртуальные методы, и большую часть времени люди говорят мне, что я всегда должен отмечать метод виртуальным, но я не понимаю, почему, если я не собираюсь его переопределять. И я также знаю, что есть небольшая проблема с памятью.Почему я должен отмечать все методы виртуальными в C++? Есть ли компромисс?
Пожалуйста, объясните мне, почему я должен отметить все методы виртуальными и что такое компромисс.
Пример кода:
class Point
{
int x, y;
public:
virtual void setX(int i);
virtual void setY(int i);
};
(Этот вопрос не равен Should I mark all methods virtual?, потому что я хочу знать, компромисс и потому, что язык программирования в случае C++, а не C#)
OBS : Извините, если есть какая-либо грамматическая ошибка, английский не мой родной язык.
Как вам это сказал? «Виртуальные» вызовы функций обычно связаны с просмотром vtable и не могут быть встроены. Если вы им не нужны, не используйте их. – filmor
Проверьте книгу Wrox Professional C++, говорят, что я всегда должен отмечать метод virtual. – 2014-08-31 17:18:00
Не все, что написано в книге, является хорошим советом. Даже если название содержит слово «Профессионал». – celtschk