输入输出流、模板

本文深入探讨了C++中的流类,包括输入输出流、模板的概念及其应用,以及全局流对象的功能。详细介绍了流类的基本操作和模板的两种形式,帮助读者掌握C++ I/O处理和函数/类的通用化设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、输入输出流

 在C++中,用面向对象的方法实现流。为了实现流,从上到下定义了几种流类:
 a. ios 是抽象流基类
 b. ios 的派生类 istream 是输入流基类
 c. ios 的派生类 ostream 是输出流基类
 d. iostream 是输入/输出流类,由 istream 和 ostream 两个基类共同派生出来
 在 I/O 流类中定义了若干成员函数,其中两个比较特殊的成员:
 a.提取运算符:>>
 b.插入运算符:<<

 在流类库中,在重要的两部分功能为标准输入/输出和文件处理,C++的流类库中定义了四个全局流对象,完成人机交互:
 a. cin:标准输入流对象,键盘为其对应的标准设备;
 b. cout:标准输出流对象,显示器为其对应的标准设备;
 c. cerr 和 clog:标准错误输出流,输出设备是显示器;
 其中,cin、cout 和clog带缓冲区,缓冲区由streambuf类对象管理。而 cerr为非缓冲区流,一旦错误发生立即显示。            

2、模板

 模板具有两种形式:
 a.函数模板
 b.类模板

 函数模板:
 函数模板提供了具有处理相同功能的一类函数的抽象,它以任意类型T为参数,定义形式如下:
 template <参数化类型名表>
 <返回类型> <函数名>(<参数表>)
 {
     // 函数体 
 }
 template <typename T_TYPE>
 int fun(T_TYPE NumA,T_TYPE NumB)
 {
      // 函数体
 }
 template 是定义函数模板的关键字,<参数化类型名表>可以包含基本类型,也可以包含类类型,不过需要加上关键字 class 。例:template <class T_TYPE>

 函数模板:模板的定义,是一类函数的描述,不是实际的函数,定义中使用通用的类型参数;
 模板函数:函数模板实例化的函数,是一个实际的函数,它由编译器遇到 模板函数调用时生成,具有可执行程序代码。

 模板特化:也可理解为实例化,分为显示实例化和隐式实例化,一般将显示实例化称为特化。
 特化分为两种:
 普通特化:将此模板的所有替换类型的某一种类型进行特别处理;
 偏特化:将此模板的所有替换类型的某一种类型的某几项进行特别处理;

 类模板:
 定义格式:
 template <模板参数表>
 class <类名>
 {
     // 类体说明 
 }
 template 是关键字,<模板参数表>中可以有多个参数,用逗号分隔;
 类模板:具有相同特性的一组类,定义的一种模式,说明单个类怎样建立。
 模板类:模板实参生成的类,也可理解为类模板实例化生成的类,可以生成对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值