C++基础教程_完整版

上传人:豆浆 文档编号:39554594 上传时间:2018-05-17 格式:DOCX 页数:177 大小:159.80KB
返回 下载 相关 举报
C++基础教程_完整版_第1页
第1页 / 共177页
C++基础教程_完整版_第2页
第2页 / 共177页
C++基础教程_完整版_第3页
第3页 / 共177页
C++基础教程_完整版_第4页
第4页 / 共177页
C++基础教程_完整版_第5页
第5页 / 共177页
点击查看更多>>
资源描述

《C++基础教程_完整版》由会员分享,可在线阅读,更多相关《C++基础教程_完整版(177页珍藏版)》请在金锄头文库上搜索。

1、 1 / 177C+ 基础教程 Beta 版原作:Juan Souli 翻译:Jing Xu (aqua)英文原版本教程根据 Juan Soulie 的英文版 C+教程翻译并改编。 本版为最新校对版,尚未定稿。如有不明或错误之处,请参考英文原版,并敬请在本站留言指正。版权归作者所有,欢迎链接,请勿转载。本教程对 C+语言进行了深入浅出的介绍,从基础知识到 ANSI-C+标准的最新功能,内容涵盖了从数组,类等基本概念到多态、模板等高级概念。教程本着实用的原则,每一小节都结合了可以工作的程序实例,以便读者从第一课开始就可以上手实习。本翻译版本对许多 C+概念中的关键词保留了中英文对照,以便读者增强

2、理解,并方便日后阅读英文原版教材目录1. 简介 怎样使用本教程 2. C+基础 Basics of C+ 1. C+程序结构 Structure of a program 2. 变量和数据类型Variables and Data types 3. 常量 Constants4. 操作符/运算符 Operators 5. 控制台交互 Communication through console 2 / 1773. 控制结构和函数 Control structures and Functions 1. 控制结构 Control Structures 2. 函数 I Functions I 3. 函数

3、II Functions II 4. 高级数据类型 Advanced Data 1. 数组 Arrays 2. 字符序列 Character Sequences3. 指针 Pointers 4. 动态内存分配 Dynamic memory 5. 数据结构 Data Structures 6. 自定义数据类型 User defined data types 5. 面向对象编程 Object-oriented Programming 1. 类,构造函数和析构函数,类的指针 Classes. Constructors and Destructors. Pointers to classes. 3 /

4、 1772. 操作符重载,this,静态成员 Overloading Operators. this. Static members 3. 类之间的关系 Relationships between classes: friend. Inheritance 4. 虚拟成员,抽象,多态 Virtual Members. Abstraction. Polymorphism 6. C+高级 Advanced concepts 1. 模板 Templates 2. 名空间 Namespaces 3. 出错处理 Exception handling 4. 类型转换高级 Advacned Class Typ

5、e-casting 5. 预处理指令 Preprocessor Directives 7. C+ 标准函数库 C+ Standard Library 1. 文件的输入输出 Input/Output with files C+基础教程简介怎样使用本教程读者范围4 / 177本教程面向所有希望学习 C+语言的读者。如果读者有其他编程语言背景或计算机相关基本知识可以帮助更好的理解教程内容,但这并非必须条件。对于 C 语言熟悉的读者可将前三章(1.1 到 3.4)当作复习,因为这部分内容主要介绍 C+中的 C 部分。不过某些 C+的语法与 C 还是有些差别,所以建议还是快速的读一下这部分。第四章讲述面

6、向对象编程。第五章主要介绍 ANSI-C+标准中的新增的功能。本教程结构教程共分 6 章,每章分若干小节。你可以直接从主目录进入任意小节,并循每页底部的链接向后浏览。很多小节含有一页例题介绍该章节主要知识点的使用。建议在进入下一章学习之前最好先阅读这些例题,理解每行代码。学习和练习一种编程语言的最好办法是自己修改书中例题程序,设法在程序中增加新的功能。不要不敢修改这些例题程序,这正是学习的方法。兼容性备注ANSI-C+标准近几年来被接受为国际标准。尽管 C+语言从二十世纪 80 年代即存在,ANSI-C+在 1997 年才被发表,2003 年又被修订过。因此很多编译器不支持ANSI-C+中的部

7、分新功能,特别是那些在此标准发表前即被发布的编译器。在本教程中,那些 ANSI-C+中新增的而老一代 C+编译器大多不支持概念将备用如下标志标出:ANSI C+新增的概念同样对于 C 和 C+在实现上有明显不同的概念,将备用如下标志标出:C 与 C+不同的地方编译器本教程中所有例题程序均为 console 程序(控制台程序)。此类程序以文本形式与用户交换信息,显示结果。5 / 177所有 C+编译器均支持 console 程序的编译。要了解更多关于如何编译的说明,请查询你的编译器用户使用手册。C+编译器和开发环境推荐很多读者询问编译器和开发环境的问题。除了常用的商用收费的 MS Visual

8、Studio, VC+,Borland C+等工具外,还有很多免费的工具也是很好用的。这里推荐两种免费的 C+开发软件:1、Eclipse 的 CDT 开发工具,官方网站在 http:/www.eclipse.org/cdt/2、开源工具 Dev-C+和 wxDev-C+第一章 C+ 基础知识 (Basics of C+)1. C+程序结构 Structure of a program 2. 变量和数据类型 Variables and Data types 3. 常量 Constants 4. 操作符/运算符 Operators 5. 控制台交互 Communication through c

9、onsole 1.1 C+程序结构 (Structure of a program)下面我们从一个最简单的程序入手看一个 C+程序的组成结构。/ my first program in C+#include using namespace std;int main() 6 / 177cout 以#标志开始的句子是预处理器的指示语句。它们不是可执行代码,只是对编译器作出指示。在本例中这个句子# include 告诉编译器的预处理器将输入输出流的标准头文件(iostream.h)包括在本程序中。这个头文件包括了 C+中定义的基本标准输入-输出程序库的声明。此处它被包括进来是因为在本程序的后面部分中

10、将用到它的功能。using namespace std;C+标准函数库的所有元素都被声明在一个名空间中,这就是 std 名空间。因此为了能够访问它的功能,我们用这条语句来表达我们将使用标准名空间中定义的元素。这条语句在使用标准函数库的 C+程序中频繁出现,本教程中大部分代码例子中也将用到它。(iostream.h 与 iostream 的不同。#include是在旧的标准 C+中使用。在新标准中,用#include。iostream 的意思是输入输出流。#include是标准的 C+头文件,任何符合标准的 C+开发环境都有这个头文件。还要注意的是:在 VC 编程时要添加:using names

11、pace std;7 / 177其原因是:后缀为.h 的头文件 C+标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h 后缀的头文件里,C+标准为了和 C 区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此,当使用时,相当于在C 中调用库函数,使用的是全局命名空间,也就是早期的 C+实现;当使用的时候,该头文件没有定义全局命名空间,必须使用 namespace std;这样才能正确使用cout。)int main()这一行为主函数(main function)的起始声明。main function 是所有 C+程序的运行的起始点。 不管它是在代码的开头,

12、结尾还是中间,此函数中的代码总是在程序开始运行时第一个被执行。并且,由于同样的原因,所有 C+程序都必须有一个 main function。main 后面跟了一对圆括号(),表示它是一个函数。C+中所有函数都跟有一对圆括号 (),括号中可以有一些输入参数。如例题中显示,主函数(main function)的内容紧跟在它的声明之后,由花括号 ()括起来。 cout int main ()cout 10 / 177int main ()cout using namespace std;int main ()/ declaring variables:int a, b;15 / 177int res

13、ult;/ process:a = 5;b = 2;a = a + 1;result = a - b;/ print out the result:cout using namespace std;int main ()int a=5; / 初始值为 5int b(2); / 初始值为 2int result; / 不确定初始值a = a + 3;result = a - b;cout ,并且使用 using namespace 语句来使用标准名空间(std),如下面例子所示:/ C+字符串例题#include #include 18 / 177using namespace std;int

14、main ()string mystring = “This is a string“;cout #include using namespace std;int main ()string mystring;mystring = “This is the initial string content“;cout using namespace std;int main ()int a, b; / a:?, b:?a = 10; / a:10, b:?b = 4; / a:10, b:4a = b; / a:4, b:4b = 7; / a:4, b:7cout =, using namesp

15、ace std;int main ()int a, b=3;a = b;a+=2; / 相当于 a=a+2cout , =, 大于 Greater than= 大于等于 Greater or equal than4)将返回 true.(3 != 2)将返回 true.(6 = 6) 将返回 true.(5 = c)将返回 true 因为它实际是(2*3 = 6)(b+4 a*c)将返回 false 因为它实际是(3+4 2*6)(b=2) = a)将返回 true.注意:运算符= (单个等号)不同于运算符= (双等号)。第一个是赋值运算符(将等号右边的表达式值赋给左边的变量);第二个(=)是一

16、个判断等于的关系运算符,用来判断运算符两边的表达式是否相等。因此在上面例子中最后一个表达式(b=2) = a),我们首先将数值 2 赋给变量 b,然后把它和变量 a 进行比较。因为变量 a 中存储的也是数值 2,所以整个运算的结果为 true。 29 / 177在 ANSI-C+标准出现之前的许多编译器中,就像 C 语言中,关系运算并不返回值为真 true 或假 false 的 bool 值,而是返回一个整型数值最为结果,它的数值可以为0,代表“false“或一个非 0 数值(通常为 1)来代表“true“。 逻辑运算符 Logic operators ( !, int main ()int a,b,c;a=2;b=7;c = (ab) ? a : b;c

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号