std::basic_ios
bir 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_base
hepsi korunur. Ancak, bir nedenden dolayı, standardın tasarımcıları bunu bir basic_ios
kamu kurucusu yaptı .
basic_ios
çeşitli akış türleri için temel sınıf olarak kullanılır ve en az a basic_istream
veya olmayan bir tane kullanacağınız bir kullanım durumu öngöremiyorum basic_ostream
. Bir tane var mı?
basic_ios
a 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
.