《C++ Primer中文版》(第四版)信息汇总(二)

本文详细介绍了C++中的语句类型,如break和continue的作用;深入探讨了函数定义、参数传递及返回值处理等内容;同时,对C++标准IO库进行了全面解析,包括基本概念、文件流的操作及条件状态的管理。

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

上一篇文章主要收集了前面五章的内容,http://blog.youkuaiyun.com/rocket5725/archive/2009/09/17/4563837.aspx

本章主要对语句、函数、标准IO库进行汇总。 

六、语句

C++语言既有只完成单一任务的简单语句,也有作为一个单元执行的由一组语句组成的复合语句。本章主要讲解讨论C++支持的语句。

1、break语句用于结束最近的while、do while、for或switch语句,并将程序的执行权传递给紧接在被终止语句之后的语句。

2、continue语句导致最近的循环语句的当次迭代提前结束。

3、C++的异常处理包括:throw表达式、try块、由标准库定义的一组异常类。

4、使用预处理器进行调试:$ cc -DNDEBUG main.c

同时还提供了四种在调试时非常有用的常量。

5、另一个调试技术是使用NDEBUG预处理变量以及assert预处理宏。assert宏是在cassert头文件中定义的,所有使用assert的文件都必须包含这个头文件。

七、函数

本章节介绍函数的定义和声明,其中讨论了如何给函数传递参数以及如何从函数返回值,然后具体分析三类特殊的函数:内联函数、类成员函数和重载函数,最后讨论"函数指针"。

1、函数必须指定返回类型,没有显式指定返回类型是不合法的:

2、每次调用函数时,都会重新创建该函数所有的形参,此时所传递的实参将会初始化对应的形参;形参的初始化与变量的初始化一样,如果形参具有非引用类型,则复制实参的值,如果形参为引用类型,则它只是实参的别名。

3、非引用形参

(1) 指针形参

为了保护指针指向的值,则形参需定义为指向const对象的指针

(2) const形参:既可以给该函数传递const实参也可以传递非const的实参

复制实参并不是在任何情况下都适用,不适宜复制实参的情况包括:当需要在函数中修改实参的值时、当需要以大型对象作为实参传递时、当没有办法实现对象的复制时。

4、引用形参

(1) 使用引用形参可以返回额外的信息

(2) 利用const引用避免复制

5、main:处理命令行选项

6、含有可变形参的函数

7、千万不要返回局部对象的引用

8、内联函数:可以避免函数调用的开销,内联函数应该在头文件中定义,这一点与其他函数不同。

9、指向函数的指针:是指向函数而非指向对象的指针,如下pf声明为指向函数的指针。

(1) 用typedef简化函数指针的定义

(2) 指向函数指针的初始化和赋值

假设有函数如下,在引用函数名但又没有调用该函数时,函数名被自动解释为指向函数的指针。

即可以使用函数名对函数指针做初始化或者赋值,如下

(3) 通过指针调用函数:指向函数的指针可用于调用它所指向的函数,可以不需要使用解引用操作符,直接通过指针调用函数。

八、标准IO库

C++的输入/输出由标准库提供,标准库定义了一族类型,支持对文件和控制窗口等设备的读写(IO),还定义了其他一些类型,使string对象能够像文件一样操作,从而使我们无需IO就能够实现数据与字符之间的转换。本章将介绍IO标准库的基础知识。

1、IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于读写存储在内存中的string对象。

2、IO对象不可复制或赋值

形参或返回类型也不能为流类型,如果需要传递或返回IO对象,则必须传递或返回指定该对象的指针或引用:

3、条件状态:IO标准库管理一系列条件状态成员,用来标记给定的IO对象是否处于可用状态,或者碰到了哪种特定的错误。

流必须处于无错误状态,才能用于输入或输出。检测流是否可用的最简单的方法是检查其真值:

4、如果需要刷新所有输出,最好使用unitbuf操纵符,这个操作符在每次执行完写操作后都刷新流:

5、fstream头文件定义了三种支持文件IO的类型:(1) ifstream,由istream派生而来,提供读文件的功能;(2) ofstream,由ostream派生而来,提供写文件的功能;(3) fstream,由iostream派生而来,提供读写同一个文件的功能。fstream类型除了继承下来的行为外,还定义了两个自己的新操作——open和close,以及形参为要打开的文件名的构造函数。

6、文件流对象的使用

(1) 检查文件打开是否成功

(2) 将文件流与新文件重新绑定:在尝试打开新文件之前,必须先关闭当前的文件流

7、文件模式:

文件模式及其含义如下表所示:

in打开文件做读操作
out打开文件做写操作
app在每次写之前找到文件尾
ate打开文件后立即将文件定位在文件尾
trunc打开文件时清空已存在的文件流
binary以二进制模式进行IO操作

out、trunc和app模式只能用于指定与ofstream或fstream对象关联的文件;in模式只能用于指定与ifstream或fstream对象关联的文件。所有的文件都可以用ate或binary模式打开。

8、一个打开并检查输入文件的程序:由于不清楚流in的当前状态,因此首先调用close和clear将这个流设置为有效状态,然后尝试打开给定的文件。

9、字符串流

(1) istringstream,由istream派生而来,提供读string的功能

(2) ostringstream,由ostream派生而来,提供写string的功能

(3) stringstream,由iostream派生而来,提供读写string的功能

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值