2
Почему у `std :: basic_ios` есть открытый конструктор?
std::basic_iosимеет открытый конструктор : explicit basic_ios (std::basic_streambuf<CharT,Traits>* sb); IMO, единственная причина, по которой у класса есть открытый конструктор, - это использование автономного экземпляра этого класса в программе. Если класс существует только для того, чтобы другие классы происходили от него (как, кажется, имеет место basic_ios), все конструкторы класса должны быть protected. …