> -- Alexey Veselovsky писал(а):
> А что собственно не так? Ты пользователь класса A, видишь только его спецификацию. Было бы странно предположить что в функцию вдруг передастся что-то отличное от 10. Если пользователю не нравится дефолтная десятка, то он волен задать своё значение. Ни о каких двадцатках он не знает и знать не может. Также он не знает метод какого конкретного класса вызовется, ибо не его это дело. Полиморфизмъ.Если бы функция вызвалась бы с параметром 20, то это было бы нарушением контракта.Какие мы все умныя!
А если я - ПОЛЬЗОВАТЕЛЬ КЛАССА В??? Как?
Практически ВСЕ, кого спросил (кроме двух), указали 20.
Один сказал 10, потому, что новичок и неправильно понимал поведение и правила перекрытия виртуальных функций в Си++, второй - до этого прочитал статью.
Все остальные (даже сторонники и приверженцы Си++), заметили "разветвлённость" понятийного момента (по правилам виртуализации и по умолчаниям в аргументах). Все хором сошлись на "хорошо в пятнадцати строчках! А попробуй найти лопух в десятках тысячах строк проекта, ежели чаво!..."

Наше - вам!

ЗЫ Кроме того, уж извините, но при таком раскладе, как в примере, я НИКАК не могу быть "пользователем класса А"... Подумайте - почему?