# std::basic_iostream<CharT,Traits>::basic_iostream

< cpp‎ | io‎ | basic iostream

explicit basic_iostream( std::basic_streambuf<CharT,Traits>* sb ); | (1) |
basic_iostream( const basic_iostream& other ) = delete; | (2) | (C++11 起)
protected: basic_iostream( basic_iostream&& other ); | (3) | (C++11 起)

构造新的流对象。

1) 以 streambuf `sb` 初始化。基类初始化为 basic_istream<CharT,Traits>(sb) 和 basic_ostream<CharT,Traits>(sb) 。调用后 rdbuf() == sb 而 gcount() == 0 。
2) 不允许复制构造。
3) 移动构造函数：移动构造第一基类 `basic_istream` 为 basic_istream<CharT,Traits>(std::move(rhs)); ，这会继续移动构造并初始化虚基类 std::basic_ios 。另一基类 `basic_ostream` 的初始化是实现定义的（例如，可以添加不做任何事的受保护默认构造函数到 std::basic_ostream ），因为移动构造不能使用 `rhs` 二次。此移动构造函数受保护：它为导出流类 std::basic_fstream 和 std::basic_stringstream 的移动构造函数在它们移动并关联流缓冲前调用。

### 参数

sb | - | 用以初始化的 streambuf
other | - | 用以初始化的另一流

### 参阅

operator= (C++11) | 移动赋值另一 `basic_iostream` (受保护成员函数)