首页 理论教育 大道至简:C++STL标准模板库4个类模板详解

大道至简:C++STL标准模板库4个类模板详解

时间:2023-10-25 理论教育 版权反馈
【摘要】:本小节简要介绍4个类模板。前面已经使用过这4个类模板,但并没有对它们的全部功能和全部成员函数进行透彻的讲解和说明。同样,此类模板包括5个类型声明、两个构造函数和4个成员函数。

大道至简:C++STL标准模板库4个类模板详解

小节简要介绍4个类模板。前面已经使用过这4个类模板,但并没有对它们的全部功能和全部成员函数进行透彻的讲解和说明。

1.类模板Basic_filebuf

类模板Basic_filebuf是从类Basic_streambuf派生而来,属于名称空间std内。此类包含了5个类型声明:

此类模板还包含了一个构造函数和一个析构函数:

此类模板的成员函数有3个:is_open()、open()和close()。其原型分别为:

其中open()函数的返回值指针类型。

此类还包括几个重载函数:showmanyc()、underflow()、uflow()、pbackfail()、overflow()、setbuf()、seekoff()、seekpos()、sync()和imbue()。

类Basic_filebuf使输入流和输出流同各自的文件关联起来。

is_open()函数用于判断文件是否被打开。如果文件打开成功,函数返回true;否则,函数返回false。

open()函数和close()实现文件或流的打开和关闭。

showmanyc()函数可以实现判断出输入流中有多少字符可以被读取。

underflow()函数在前面已经讲过。

uflow()函数从输入流中读取当前字符,并返回为整数值形式。

pbackfail()函数将字符放回输入流中。

overflow()函数前面已经讲过。

seekpos()函数使用绝对位置,随机访问文件。

seekoff()函数使用相对位置,随机访问文件。

sync()函数实现缓冲区和文件的同步。

imbue()函数默认是不做任何事情。

2.类模板Basic_ifstream

类模板Basic_ifstream是从类Basic_istream派生而来的。同样,此类模板包括5个类型声明、两个构造函数和5个成员函数。它们的声明形式及功能如下:

两个构造函数的声明形式为:(www.xing528.com)

5个成员函数的作用为:

rdbuf()函数是获取流缓冲区的指针。

is_open()函数用于判断流是否被正确打开。

open()函数用于打开文件。

close()函数用于关闭文件和输入流之间的关联。

3.类模板Basic_ofstream

类模板Basic_ofstream是从类Basic_ostream派生而来的。同样,此类模板包括5个类型声明、两个构造函数和4个成员函数。它们的声明形式及功能如下:

两个构造函数的声明形式为:

4个成员函数的作用为:

rdbuf()函数是获取流缓冲区的指针。

is_open()函数用于判断是否正确打开文件。

open()函数用于打开文件,如果打开成功,将建立文件和流之间的关联。

close()函数用于关闭流和文件之间的关联。

4.类模板Basic_fstream

类模板Basic_fstream是从类Basic_iostream派生而来的。同样,此类模板包括5个类型声明、两个构造函数和4个成员函数。它们的声明形式及功能如下:

两个构造函数的声明形式为:

4个成员函数的作用为:

rdbuf()函数用于获取流缓冲区的指针。

is_open()函数用于判断是否正确打开文件。

open()函数用于打开文件,如果打开成功,将建立该文件和流之间的关联。

close()函数用于关闭流和文件之间的关联。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈