«Как правило, делайте все ваши методы виртуальными» в C++ — разумный совет?

Я только что наткнулся на утверждение в заголовке. Полная цитата:

Как правило, делайте все ваши методы виртуальными (включая деструктор, но не конструкторы), чтобы избежать проблем, связанных с пропуск виртуального ключевого слова.

Я нашел это в книге Wrox Professional C++. Вы можете проверить это в Google.

Есть ли в этом что-нибудь? Я бы подумал, что вы предоставите только избранные точки расширения, а не расширяемость по умолчанию. Например, статья Херба Саттера 2001 года говорит об этом. Изменилось ли что-нибудь кардинально с тех пор, чтобы сделать противоположное господствующей нормой? (Обратите внимание, что я новичок в C++, поэтому я не следил за обсуждением в течение последнего десятилетия.)

15
задан Lumi 12 March 2012 в 00:06
поделиться