std::basic_iosbir kamu kurucusu var :
explicit basic_ios (std::basic_streambuf<CharT,Traits>* sb);
IMO, bir sınıfın ortak bir kurucuya sahip olmasının tek nedeni, bir programda o sınıfın bağımsız bir örneğini kullanmaktır. Bir sınıf yalnızca diğer sınıfların ondan alçalması için mevcutsa (durumun göründüğü gibi basic_ios), sınıfın tüm kurucuları olmalıdır protected. İnşaatçılarının std::ios_basehepsi korunur. Ancak, bir nedenden dolayı, standardın tasarımcıları bunu bir basic_ioskamu kurucusu yaptı .
basic_iosçeşitli akış türleri için temel sınıf olarak kullanılır ve en az a basic_istreamveya olmayan bir tane kullanacağınız bir kullanım durumu öngöremiyorum basic_ostream. Bir tane var mı?
basic_iosa alarak ctorbasic_streambuf*yapabileceğinizden beri halka açıktıusing B::B;. : Eski uygulamalar sadece bir proxy ctor vardı bekliyoruzA(int x) : B(x) {}ince olsa bile çalışır -B'ın ctor olduğunuprotected.