Linux环境C++语言程序设计教材

所需积分/C币:30 2018-07-18 19:49:25 10.35MB PDF

Linux系统下的C++程序设计详解,轻松学习,有助于从Windows系统过渡到Linux系统
3.5类和对象 32 3.51类的声明 ……32 3.52类成员的访问控制 34 353类的成员函数 34 3.54对象…… 35 3.55对象数组 …36 36构造函数和析构函数… …………………38 361构造函数 38 362拷贝构造函数 363析构函数… 3 3.7类的组合 ………45 3.8类模板… ……49 第4章程序结构… 53 4.1静态成员 …………54 41.1静态数据成员…… 4.1,2静态函数成员 56 4.2友元 60 42.1友元函数…… 422友元类… 62 4.3常类型 64 431常引用 4.32常对象 …66 4.33常成员函数 67 4.34常数据成员 44多文件结构 69 第5章指针和字符串… 51指针与类、对象 52动态内存分配与new和 delete运算符 75 521new运算符… 522 delete运算符 5.3 string 类…… 事山垂垂帝 78 第6章多态性 6.1多态性概述 ………83 鲁 62运算符重载 62.1运算符重载的规则 84 62.2运算符重载为成员函数 623运算符重载为友元函数 62.4其它运算符重载 …91 63虚函数 92 63.1为什么要引入虚函数 92 632虚函数的定义及使用 63.3虚函数的限制 甲斗中中争 64抽象类 99 64.1纯虚函数 642抽象类… 9 第7章流类库与输入输岀 7.1输入/输出标准流类 7.1.1输入输出流的概念… …103 71.2输入输出标准流类 103 72文件流类 104 73串流类 74控制符 108 74.1使用流对象的成员函数 108 74.2使用控制符 7.5输入输出成员函数 L10 75,1使用成员函数输入 110 752使用成员函数输出 112 76用户自定义类型的输入/输出 …113 参考文献 ……………115 章C+语言概述 本章目标 了解计算机组成结构的基础知 了解程序设计语言的基本概念和发展历程 9对C语言程序的有一个初步的认识 掌握一个最简单的C+程序1101 /掌握g+具的基本使用方法) °掌握在 Linux/uni环境编译并运行C+程 序的方法 ●掌握查看程序执行退出状态的方法 Linux环境C++语言程序设计 1.1计算机组成结构 个完整的计算机系统包括硬件和软件两大部分。根据冯诺伊曼的计算机结构体系 模型,计算机系统的硬件结构应该包括以下五个部分:运算器、控制器、存储器、输入 设备和输出设备。 运算器主要完成计算机的算术运算、逻辑运算等功能。控制器则控制各个设备之间 的配合,是计算机的核心,目前计算机的中央处理器(CPU)就是典型的控制器。而存 储器的主要功能则是存储计算机运算过程中的输入数据、输出结果以及中间运算数据 等。输入设备和输出设备是实现人与计算机之间的交互的必要设备,人通过输入设备将 所要处理的信息和数据输入到计算杋,控制器管理控制整个总线流程,控制运算器对输 入数据进行运算和处理,再将计算的结果通过输出设备显示给人。整个处理过程完全在 控制器的管理之下进行。 计算机的软件可以分为系统软件和应用软件两大类,系统软件的主要功能是实现对 硬件资源的管理,并为用户提供良好的操作接口。计算机操作系统就是典型的系统软件, 其他系统软件比如有数据库系统、网络系统、程序设讨语言与语言处理程序等。应用软 件则种类更加繁多,为用户实现各种各样的功能。各种软件都是通过程序设计语言编写 完成的。 计算机系统的大体结构,我们可以用下图来表示: 运算器:完成数学运算和逻辑运算等 控制器:控制各设备间协调配合 硬件 存储器:存储运算结果和中间数据 输入设备:向计算机输入待处理数据 输出设备:计算机向外输出运算结果 系统软件 计算机系统 软件 操作系统 数据库系统 应用软件 网络系统 程序设计语言与 语言处理程序 1.2程序设计语言与C+语 121程序的概 程序就是一系列的操作步骤,计算机程序就是由人事先规定的计算机完成某项工作 第1章,C++语言概述 的操作步骤。每一步骤的具体内容由计算机能够理解的指令来描述,这些指令告诉计算 机“做什么”和“怎样做”。人们操作计算机都是通过程序的执行来实现的。 程序主要由数据结构和算法构成,并通过一定的程序设计语言来表达。两者的关系 可以表示为这样一个经典的等式: 颚据绻构「算法。程剧 其中,数据结构主要用来描述数据的类型、数据的组织形式等;算法则是描述对数 据的操作步骤和方法。因此,可以说,数据结构体现了程序告诉计算机“做什么”,而 程序的算法则告诉计算机应该“怎么做”。 ②1.2.2程序设计语言 程序都是通过程序设计语言来表达的,程序设计语言就是用来表达程序内容的和计 算机指令的计算机语言。程序设计语言经历了从低级到高级,从面向过程到面向对象等 多个不同的发展历程 1.面向机器的语言 最早最低级的程序设计语言是面向机器的语言,这种语言是针对某种特定类型的计 算或者硬件设备编写的,这样的程序被成为面向机器的程序,语言被成为面向机器的语 面向机器的语言有它自身的特点,既有优势也有缺点。一般而言,面向机器的语言 能够充分发挥计算机硬件的运算速度快的优势,运行效率较高。同时,面向机器的语言 主要是各种机器语言和汇编语言,程序的可读性都比较差,程序的编写对程序员有很高 的要求,程序员需要对相关的硬件或者特定的计算机非常熟悉,而且对程序的修改和扩 展也都比较困难;另外,由于面向机器的程序是针对特定的硬件而设计的,因而,程序 的可移植性也很差 2.面向过程的语言 面向过程的语言出现于20世纪60年代左右,其特点是以数据结构和算法为核心, 数据结构用来描述所要解决的问题,算法主要研究如何更加有效地来组织和解决问题。 典型的面向过程的语言就包括 BASIC、 PASCAL、 FROTRAN、C语言等。面向过程程 序设计的一个典型特点就是:自顶向下、逐步求精。自顶向下逐步求精,就是说要不断 将所要解决的问题细分为小的子问题,通过对子问题的依次解决最终实现整个问题的解 决。这是一个很典型也比较优秀的解决问题的方法。面向过程的语言相对于面向机器的 语言有很多的优势,它极大地改善了程序的可读性和可维护性,大大地增强了程序的可 移植性,但较大的程序,其管理和维护依然存在困难,另外一点就是,程序的可重用性 不是很高。 Linux环境C++语言程序设计 3.面向对象的语言 面向对象的语言最早提出于20世纪60年代左右,到了20世纪80年代左右就较为 成熟了。面向对象的语言釆用了一种全新的思维模式,使程序设计思路对整个世界的认 识更加一致。面向对象的程序设计,更加方便软件的扩展、管理和复用,相对于之前的 程序无论在质量上还是效率上都有较大的提高。典型的面向对象的程序设计语言有 C++、Java、 Python等。面向对象的程序设计语言在较大工程项目中,开发效率上有较 大的优势。 1.3编写一个最简单的C+程序 我们首先来看一个最简单的C++语言程序。 he simplest c++ prog 3 Wed Feb 10 11: 41: 27 CST 2019 s int mmain() 下面我们来分析一下这个最简单的程序 第1行到第4行属于程序的注释,用/和*/包含起来,可以是多行,在这个程序中, 这段注释的主要内容包括程序源文件名、程序功能的简单描述以及程序编写的时间 第5行为空行,仅仅为了提高整个源程序文件的可读性,没有其他作用,编译器也 不会对它做任何解释,直接忽略。 第6行中定义了一个函数,这个函数称为主函数(main函数),main函数是任何一 个C++程序都必须包含一个并且只有一个的特殊函数,main函数是操作系统唯一显式 调用的函数,操作系统会自动调用main函数,因此,main函数是程序的入口函数。 第7行到第9行的部分称为函数体,用大括号括起来,这个程序的函数体非常简单, 仅仅使用Eem语句返回一个值0。一般地,程序返回值表征了程序执行是否成功,返 回值为0表示成功执行,当使用Eum返回其他值时,一般作为错误的标志,不同的操 作系统中对于错误的处理不同,要在 Linux/Unⅸx系统中查看程序的执行状态,可以使用 echo$命令。 另外,需要说明的是,民etm语句最后面有一个分号,这个分号表示语句的结束, 初学者常常容易忽略掉这个分号,漏掉分号将导致编译错误 第1章C++语言概述 14在Lnux上编译并运行C++程序 编写程序,可以使用文本编辑器,也可以使用包含有各种编辑、编译、链接和调试 工具的集成开发环境(IDE),但是,对于初学语言的人来说,最好的选择还使用简单的 文本编辑器和命令行编译的方式,这样会使你更加专注于本身,而且能够了解每一个细 节过程和本质,同时不必将不是要的时间花费在学习和习惯集成开发环境上。 这里,笔者推荐使用Linuⅸκ经典的Ⅵ或M编辑器,使用命令行编译、链接、调 试的方法。本书中所有的例子也将都采用这种方式来操作。 C++源程序一定要放在一个文件中,一般而言,文件的名称都包含两个部分:文件 主名称和扩展名。扩展名往往表征着文件的类型,如C语言源程序的文件扩展名为c, Java语句的源程序的文件扩展名为java等,C++源程序的扩展名可以有很多种,例如, 下面就是几种C艹+源文件的文件名约定形式 program.cpp w progTam. R progra p9g7m常 本书中将使用第一种形式,即所有的C+源程序都将保存在一个以.cc作为扩展名 的文本文件中。读者可以根据自己的个人喜好从上面的各种形式中随意选择 在Linx环境下,编译C艹+源程序使用g++编译工具包,可以通过國士國命令来查 看你的系统上的g+相关的详细信息还可以通过圆mchg命令来查看你的系统上g+ 所在的位置,再通过s-命令来查看该命令程序文件的一些属性。 本书所有的例子程序都将使用下面的这个g++作为编译器 g++的版本是44,运行在 Ubuntu操作系统之上; g++执行的是四bimg文件,而该文件实际上是一个软链接文件,它指向同一目 录下的img+44 使用g+进行编译C艹源程序的方法其实很简单,我们可以使用剧 first fiist ce 命令来对刚刚写好的C艹源程序 first cc进行编译。其中,-o表示指定输出的可执行文 件的名称,这里指定为frst,-o是一个很常用的选项;其他常用的g++的选项还有:c

...展开详情
img
胡萝卜2333

关注 私信 TA的资源

上传资源赚积分,得勋章
相关内容推荐