第一章:C++语言概述
前言:这里学习C++教材是选用的清华大学出版社的《C++语言基础教程》第二版,该版本语言较为通俗易懂,概念清晰,便于理解。因为之前学习过C语言,因此在学习本书之际,也是抱着一遍复习c语言,一遍深入学习C++原理,重点将“指针”、“面向对象”、“类和对象”、“继承性和派生类”、“多态性和虚函数”等概念深入理解,并多做习题巩固,多上机编程,提升代码能力。
同时配套的慕课有:学堂在线平台 清华大学 郑莉教授 C++语言程序设计基础(2021秋)
1.1 C++语言是一种面向对象的程序设计语言
什么是面向对象?面向对象与面向过程有何区别?
首先,我们先了解对象的概念,对象是软件系统的基本构成单位,对象是对客观世界中实际存在的某种事物的抽象,即:描述客观事物的一个实体。对象是一组属性和一组行为的集合,属性用来描述对象的静态特性,用若干数据表示;行为则描述对象动态特性,用若干操作表示,即数据与操作的集合。
而面向对象总体来讲则是:运用一些新概念和新方法构造系统的软件开发方法,这些新概念包括对象、类、封装、聚合、继承、多态性等,这些也体现了面向对象的特点。
面向过程:即以过程为中心的编程思想,主要的特点是模块化编程,比如:小明起床去学校,可以分解为四步流程:(1)起床 (2)穿衣 (3)洗脸刷牙 (4)去学校
面向对象则是将每个元素抽象成对象,对象有自己的属性,关注对象的行为,而并非这个事件。
同时面向对象有多种新概念,新方法需要理解:
1.类:类是一种类型,是对具有相同属性对象的描述,类是创建对象的样板,包含着所创建对象的数据描述和操作定义,类是一种具有共同属性、行为的若干对象的统一描述体。
分类是其主要特点。
2.封装:即将对象的属性和行为结合为一个封装体,其中,属性由若干不同类型数据组成,对象的行为由若干操作组成。操作是通过函数实现,又称为方法。
3.聚合:聚合是类之间的一种包含关系,一个复杂类可以由若干简单的对象组成,其中的方法成为聚合。例如:描述一架飞机,可以将飞机拆分为机翼、机身、机尾、发动机等多干部位。
4.继承:是创建新类的一种方法,继承用来解决一般类和特殊类的关系,其中,特殊类具有一般类的属性和行为,并且它还有自己特殊的属性和行为,这时称特殊类是对一般类的继承。
在软件开发中,可将已经开发好的类存放到类库内,开发新系统时,便可直接使用或继承使用已有的类。继承可以减少冗余性,提高重用性。减少编程工作量,提高编程质量。
5.多态性:即一对多的状态,一个函数名或同一个运算符对应于不同的实现或功能。
综上所述:面向对象的方法归纳以下几点:
(1):将客观事物中抽象出的数据和方法构成一个集合体,便是对象。
(2):将相同类型中对象抽象出共性,形成类。类具有封装性和隐藏性。
(3):类是一个封装体,类中多数数据只能通过本类的方法进行处理,这些数据在类外不可见,无法访问。
(4):类是通过外部接口与外界进行发生关系,这些外部接口提供了类的行为。
(5):对象之间通过消息进行通信。
1.2 C++语言对面向对象程序设计方法的支持
1.C++支持数据封装
2.C++语言的类中包含私有、公有和保护成员
3.C++语言中通过发送消息处理对象
4.C++语言中允许友元破坏封装性
5.C++语言允许函数名和运算符重载
6.C++语言支持继承性
7.C++语言支持动态联编
C++语言与C语言差别在于:C++语言是面向对象,而C语言是面向过程,C++语言在对C语言改进的基础上,又增添了支持面向对象的新内容。
1.3 C++语言的词法和词法规则
1.C++语言字符集
2.单词及词法规则
(标识符、关键字、运算符、分隔符、常量、注释符)
注:存放在内存中的字符串常量最后有一个结束符,即空字符,它用转义序列方法表示:‘\0’
1.4 C++语言程序结构特点
与C语言结构有部分不同,例如提取符:“>>”,插入符:“<<”,输入输出:cin>>(变量1)>>(变量名2)…;
输出操作:cout<<(表达式1)<<(表达式2)…;
下面展示C++语言的一个示范程序:
#include<iostream>
#include<cstdlib>
int main()
{double x,y;std::cout<<"Enter two float numbers:";std::cin>>x>>y;double z=x+y;std::cout<<"x+y="<<z<<std::endl; system("pause") ;return 0;}
运行程序,输入7.2 9.3 换行得到结果:x+y=16.5
如下图:
注:编译软件为dev c++ 或 visual c++