2
Чому `std :: basic_ios` має публічний конструктор?
std::basic_iosмає публічний конструктор : explicit basic_ios (std::basic_streambuf<CharT,Traits>* sb); IMO, єдиною причиною для класу мати загальнодоступний конструктор - використовувати окремий екземпляр цього класу в програмі. Якщо клас існує лише для того, щоб з нього сходили інші класи (як це здається basic_ios), всі конструктори класу повинні бути protected. Усі конструктори std::ios_baseзахищені. Але …