The initialization constructor (1) initializes the stream object by calling init(sb).
If invoked by a derived class using the default constructor (2), it constructs an object leaving its members uninitialized. In this case the object shall be explicitly initialized by calling init at some point before its first use or before it is destroyed (if never used).
The copy constructor (3) is explicitly deleted (as well as the copy assignment overload of operator=).