std::basic_ios
มีตัวสร้างสาธารณะ :
explicit basic_ios (std::basic_streambuf<CharT,Traits>* sb);
IMO เหตุผลเดียวที่คลาสมีตัวสร้างสาธารณะคือการใช้อินสแตนซ์แบบสแตนด์อโลนของคลาสนั้นในโปรแกรม ถ้าชั้นที่มีอยู่เท่านั้นที่จะมีชั้นเรียนอื่น ๆ สืบเชื้อสายมาจากมัน (ขณะที่ดูเหมือนว่าจะเป็นกรณีสำหรับbasic_ios
) protected
ทั้งหมดก่อสร้างระดับที่ควรจะเป็น สิ่งก่อสร้างของstd::ios_base
ทั้งหมดได้รับการคุ้มครอง แต่ด้วยเหตุผลบางอย่างผู้ออกแบบมาตรฐานทำให้ผู้สร้างbasic_ios
สาธารณะคนนี้
basic_ios
จะถูกใช้เป็นชั้นฐานประเภทกระแสหลาย ๆ และฉันไม่สามารถมองเห็นกรณีการใช้งานที่คุณต้องการมีหนึ่งที่ไม่ได้เป็นอย่างน้อยหรือbasic_istream
basic_ostream
มีไหม
basic_ios
ctor การได้รับของประชาชนตั้งแต่ก่อนที่คุณจะทำbasic_streambuf*
using B::B;
ผมคาดหวังว่าการใช้งานเก่าเพิ่งมี ctor พร็อกซี:A(int x) : B(x) {}
- ซึ่งทำงานได้ดีแม้ว่าB
's ctorprotected
คือ