Здравствуйте, sushko, Вы писали:
S>Странно мне это. Мне казалось, что по логике родительский print должен был "становиться рядом" с дочерним. Поскольку набор аргументов разный, то дескрипторы (если я правильно понимаю этот термин) функций не должны пересекаться...
Так происходит, когда перегруженные функции находятся в одном классе. А одноименные функции производных классов скрывают функции базового класса. Так было, начиная с C++98. И даже раньше. И логика тут простая — производный класс может объявить повторно любой из членов базового класса, в т.ч. и функцию-член — с идентичными параметрами и модификаторами. И это не будет вызывать ошибок компиляции.
Собственно, с пространствами имен ведь ровно то же самое.
--
Справедливость выше закона. А человечность выше справедливости.