授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》

Slides:



Advertisements
Similar presentations
移动应用软件开发技术 第二讲:C++编程基础
Advertisements

C语言程序设计 主讲教师 :张群燕 电话:
C#程序设计案例教程 第3章 程 序 结 构.
第一章 C语言概述 计算机公共教学部.
编译原理上机实习
第二章 JAVA语言基础.
C++程序设计 王希 图书馆三楼办公室.
第三章 控制结构.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
走向C++之路 WindyWinter WindyWinter感谢诸位前来捧场。
struct 可以在同一個名稱下擁有多種資料型態。使用struct能讓資料的存取和處理更為靈活。
第二章 C# 基础知识.
4.1 概述 4.2 类与对象的实现 4.3 对象的初始化和析构 4.4 类的包含 4.5 类模板
Derived Class 前言 衍生類別的定義 單一繼承 public, protected, 和 privated 基底類別
C++程序设计 第二讲 清华大学软件学院.
第3章 C 語言的基本知識.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
·线性表的定义及ADT ·线性表的顺序存储结构 ·线性表的链接存储结构 · 单向循环链表 · 双链表、双向循环链表 · 一元多项式的加法
本單元介紹何謂變數,及說明變數的宣告方式。
Object-Oriented Programming in C++ 第一章 C++的初步知识
程序设计期末复习 黎金宁
第三章 C++中的C 面向对象程序设计(C++).
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
第四章 小技巧.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++语言程序设计 第二章 C++简单程序设计.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
Java程序设计 第2章 基本数据类型及操作.
明解C++教學手冊 柴田望洋 博士 著 書號:PG20269
$10 可空类型.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
第三章 链表 单链表 (Singly Linked List) 循环链表 (Circular List) 多项式及其相加
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第三章 C# 基础知识.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第2章 MATLAB程序设计 编者.
第三章 链表 单链表 循环链表 多项式及其相加 双向链表 稀疏矩阵.
第五章 递归与广义表 递归的概念 递归过程与递归工作栈 递归与回溯 广义表.
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
程式結構&語法.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
C#程序设计基础 $3 成员、变量和常量.
第三章 C++的语句和简单的程序设计 主要内容:
第 二 章 数据类型、运算符与表达式.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
Oop8 function函式.
第二章 Java基本语法 讲师:复凡.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
C++程序设计 吉林大学计算机科学与技术(软件)学院.
第二章 类型、对象、运算符和表达式.
Review 1~3.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
第2章 Java语言基础.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
第2章 Arduino编程.
Presentation transcript:

授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》

第1章 学习面向对象程序设计方法的理由 面向对象程序设计的有关概念 C++语言是一种面向对象的程序设计语言 C++语言的词法及词法规则 东华大学信息科学与技术学院 龚涛

第1章 C++语言概述 1.1 面向对象程序设计的有关概念 1.1.1 面向对象的由来和发展 早期的汇编语言比机器语言(二进制码)方便得多。 1.1 面向对象程序设计的有关概念 1.1.1 面向对象的由来和发展 早期的汇编语言比机器语言(二进制码)方便得多。 20世纪50年代中期出现高级程序设计语言FORTRAN。 20世纪50年代后期,Algol通过块结构对变量实施隔离。 20世纪60年代,Simula 67是面向对象语言的鼻祖,提出了对象的概念,使用了类的概念,支持类的继承。 20世纪70年代,Ada语言是支持数据抽象类型的最重要的语言之一,但不全面支持继承,称为基于对象的语言。 Smalltalk语言是最有影响的面向对象语言之一,它和Object-C等都是全新的面向对象语言。 C++对传统语言C进行面向对象的扩展,是混合型语言。 面向对象的语言更接近于自然语言。 东华大学信息科学与技术学院 龚涛

1.1 面向对象的由来和发展 1.1.2 面向对象的有关概念 面向对象是一种运用了对象、类、封装、继承和多态性等来构造系统的软件开发方法,面向对象程序设计方法的特征体现于对象、类、封装、继承和多态性。 对象 对象的地位:对象是软件系统的基本构成单位,是研究问题和分析问题的出发点,是构成程序的主要成员。 对象的实质:对象是对客观世界中实际存在的某种事物的抽象,是描述客观事物的一个实体。 对象的定义:对象是一组属性和一组行为的集合,是数据与操作的集合。属性用来描述对象的静态特性,它使用若干数据来表示;行为是用来描述对象的动态特性,它使用若干操作来表示。 对象之间传递信息是通过消息实现的。 东华大学信息科学与技术学院 龚涛

1.1 面向对象的由来和发展 1.1.2 面向对象的有关概念 类 封装 类的本质:类是一种由用户定义的自定义类型,称为类类型。 1.1 面向对象的由来和发展 1.1.2 面向对象的有关概念 类 类的本质:类是一种由用户定义的自定义类型,称为类类型。 类的定义:类是一种具有共同属性和行为的若干对象的统一描述体,类是创建对象的样板,它包含着所创建对象的数据描述和操作的定义。 分类的思想:分类是人们认识客观世界的一种常用的思维方法,将具有相同属性的事物划分为一类,得到一个抽象的概念,用来表示一类事物。分类的原则是抽象,类是抽象数据类型的实现。 封装 封装是把对象的属性和行为(即数据和操作)结合成为一个封装体,操作是通过函数来实现的,又称为方法。 封装体具有隐藏性,通过称为接口的通道与外界进行联系。 东华大学信息科学与技术学院 龚涛

1.1 面向对象的由来和发展 1.1.2 面向对象的有关概念 聚合 继承 1.1 面向对象的由来和发展 1.1.2 面向对象的有关概念 聚合 聚合的定义:聚合是类之间的一种包含关系,聚合用来将复杂类表示为若干简单类的对象的集合。 问题归约的思想:在处理一个复杂问题时,常常将复杂问题分解为若干个简单问题,通过逐个解决简单问题来解决复杂问题。 继承 特殊类具有一般类的全部属性和行为,并且它还有自己的属性和行为,此时称特殊类是对一般类的继承。 继承是创建新类的方法之一,可以简化人们对事物的描述,减少冗余性,提高重用性。 可以将已开发好的类存放到类库内,例如Visual C++的基础函数类库MFC。开发新系统时,便可直接使用或继承使用已有的类,这将会减少编程的工作量,并提高编程质量。 东华大学信息科学与技术学院 龚涛

1.1 面向对象的由来和发展 1.1.2 面向对象的有关概念 多态性 1.1 面向对象的由来和发展 1.1.2 面向对象的有关概念 多态性 多态性是一对多的状态,函数重载和运算符重载是多态性的体现,即一个函数名或同一个运算符对应于不同的实现或功能。 多态性体现在动态联编上。在一般类中定义的行为或方法,被特殊类继承后,可有不同的实现或操作,并在运行中进行联编。 例如,定义一个一般类“几何图形”,它有求面积的方法,在一般类中该方法可以不给出具体的实现。对于该类的特殊类“圆形”、“矩形”、“三角形”等,这些特殊类都继承该一般类,每个特殊类中也都有求面积的方法。这些特殊的求面积方法根据其不同的几何图形具体实现,各个方法的求面积公式是不一样的。在实际操作时根据运行时出现的几何图形,调用对应的求面积方法进行计算,这就是面向对象的多态性。 东华大学信息科学与技术学院 龚涛

1.1 面向对象的由来和发展 1.1.2 面向对象的有关概念 面向对象的方法可归纳为以下几点: 1.1 面向对象的由来和发展 1.1.2 面向对象的有关概念 面向对象的方法可归纳为以下几点: 将客观事物中抽象出的数据和方法构成一个集合体,这便是对象,即对实体的描述。 将相同类型的对象抽象出共性,形成类。类具有封装性和隐藏性。 类是一个封装体,类中大多数数据只能通过本类的方法进行处理。这些数据在类外是不可见的,无法访问。 类是通过外部接口与外界联系的,这些外部接口提供了类的行为。 对象之间是通过消息进行通信的。 东华大学信息科学与技术学院 龚涛

第1章 C++语言概述 1.2 C++语言是一种面向对象的高级语言 1.2.1 C++语言对面向对象程序设计方法的支持 (1) 支持数据封装 将数据和对该数据进行合法操作的函数封装在一起 对数据访问严格控制 (2) 支持类成员的3种访问权限 私有(private)成员:只有在类中说明的函数才能访问私有成员 公有(public)成员:所有类都能访问,这是该类的对外接口 保护(protected)成员:类内函数和该类的派生类能访问 (3) 支持通过发送消息处理对象 C++语言中,每个对象根据所接收到的消息的性质来决定需要采取的行动,以响应这个消息。 送到一个对象的所有可能的消息在对象的类描述中都需要定义,即对每个可能的消息给出一个相应的方法。 东华大学信息科学与技术学院 龚涛

1.2.1 C++语言对面向对象程序设计方法的支持 (4) 支持友元 (5) 支持函数重载和运算符重载 (6) 支持继承性 类的私有成员一般是不允许该类外面的任何函数访问的,但是友元可打破这条禁令。 类中函数如果是友元,就称为友元函数。 类中所包含的类如果是友元,就称为友元类,友元类的所有成员函数都是该类的友元函数。 (5) 支持函数重载和运算符重载 (6) 支持继承性 C++语言支持单继承和多继承。 派生类(子类)继承了基类(父类)的所有数据和方法,此外派生类还可定义所需要的不包含在父类中的数据和方法。 (7) 支持动态联编(虚函数) 东华大学信息科学与技术学院 龚涛

C++语言包含C语言的全部内容,C语言是C++语言的一个子集。 C语言代码为C++语言所用,C++不是纯正的面向对象。 (1) 包容性 C++语言包含C语言的全部内容,C语言是C++语言的一个子集。 C语言代码为C++语言所用,C++不是纯正的面向对象。 (2) 对C语言的改进 增加了运算符; 增加了类型的安全性,严格检查类型转换; 引进了引用; 允许函数重载、内联及设置参数默认值等; 随时可以说明变量。 (3) 本质差别:面向对象与面向过程 东华大学信息科学与技术学院 龚涛

第1章 C++语言概述 1. 3 C++词法及其规则 1.3.1 C++语言的字符集 大小写英文字母: a~z和A ~ Z 数字字符: 0 ~9 特殊字符: 空格 ! # % ^ & * _ (下划线) - + = ~ < > / \ | . , : ; ? ‘ “ () [] {} 东华大学信息科学与技术学院 龚涛

(1) 标识符 1.3 C++语言的词法及词法规则 1.3.1 C++语言的单词及词法规则 标识符是由程序员定义的单词,用以命名程序中的一些实体,例如函数名、类名、变量名、对象名、标号名、类型名等。 标识符的长度不限,但特定的编译系统能识别的标识符的长度是有限的。 C++语言的标识符由大小写字母、数字字符(0~9)和下划线组成,并且以字母或下划线开始。 标识符中大小写字母是有区别的 用户定义标识符时,不要采用系统的保留字(关键字和设备字等)。 东华大学信息科学与技术学院 龚涛

(2) 关键字 (3)运算符 1.3 C++语言的词法及词法规则 1.3.1 C++语言的单词及词法规则 auto bool break case char catch class const continue default delete do double else enum explicit extern float for friend goto if inline int long mutable new operator private protected public register return short signed sized static static_cast struct switch template this throw true try typedef union unsigned using virtual void volatile while (3)运算符 运算符实际上是系统预定义的函数名字。 分为单目运算符、双目运算符和三目运算符。 东华大学信息科学与技术学院 龚涛

(4) 分隔符 (5) 常量 (6) 注释符(/* */ //) 1.3 C++语言的词法及词法规则 1.3.1 C++语言的单词及词法规则 空格符:单词与单词之间 逗号:说明时变量之间;函数多个参数之间 分号:for循环语句中三个表达式之间 冒号:语句标号;switch语句中关键字case {}:构造程序 (5) 常量 数字常量 字符常量 字符串常量 (6) 注释符(/* */ //) 东华大学信息科学与技术学院 龚涛

第1章 C++语言概述 1. 4 C++程序结构的特点 1.4.1 C++语言的第1个示例 第1个C++程序示例:求两个浮点数之和 源代码: #include <iostream.h> void main() { double x, y; cout<<"请输入两个浮点数:"; cin>>x>>y; double z=x+y; cout<<"x+y="<<z<<endl; } 东华大学信息科学与技术学院 龚涛

1.4 C++语言结构的特点 1.4.1 C++语言的第1个示例 东华大学信息科学与技术学院 龚涛

1.4 C++语言结构的特点 1.4.1 C++语言的第1个示例 东华大学信息科学与技术学院 龚涛

1.4.2 C++程序的组成部分 1.4 C++语言结构的特点 (1) 包含有C语言程序的组成部分 (2) C++程序中出现类和对象 预处理命令:以“#”开头的命令,包括宏定义命令、文件包含命令和条件编译命令。 输入输出语句(不同于C语言) 使用提取符“>>”的键盘输入操作: cin>>(变量1)>>(变量2) … 使用插入符“<<”的屏幕输出操作: cout<<(表达式1)<<(表达式2) … 函数:C++程序→文件→函数 语句:表达式语句、空语句、复合语句、分支语句、循环语句等 变量和常量(常量定义不同于C语言) (2) C++程序中出现类和对象 东华大学信息科学与技术学院 龚涛

1.4.3 C++程序的书写格式 (1) 与C语言相同部分的书写与C语言相同 (2) 类及对象按定义的格式书写 1.4 C++语言结构的特点 一行一般写一条语句,分行原则是不能将一个单词分开。短语句可以一行写多条,长语句可以一条写多行。 书写C++程序时尽量提高可读性,[例1. 2]与[例1. 3]说明了程序的书写格式影响可读性。 东华大学信息科学与技术学院 龚涛

第1章 C++语言概述 1. 5 C++程序的实现 1.5.1 C++语言程序实现的三步曲 (1) 编辑 (2) 编译(预处理、编译、连接) 词法分析、语法分析 生成符号表、进行错误处理、生成目标代码 (3) 运行 东华大学信息科学与技术学院 龚涛

第1章 C++语言概述 1.5.2 Visual C++ 6.0版本实现C++程序 Visual C++ 6.0版本是当前国内比较流行的一种C++编译系统,功能较强,需要在Windows 9X和NT系统上运行。 (1) 单文件程序的实现方法 以[例1. 4]为例,打开菜单【文件】|【新建】|【文件】|C++ Source File,创建C++程序文件f1.cpp。 (2) 多文件程序的实现方法 以[例1.5]为例,创建C++程序文件f2.cpp和f3.cpp,创建新的项目文件,向项目文件中添加C++程序文件;再编译连接项目文件,最后运行项目文件。 东华大学信息科学与技术学院 龚涛

第1章 C++语言概述 1.5.2 Visual C++ 6.0版本实现C++程序 东华大学信息科学与技术学院 龚涛

答疑联系信息 办公室电话:021-67792312 手机:18201798064 E-mail:taogong@dhu.edu.cn 办公室地址:2号学院楼518室 QQ:5763698 东华大学信息科学与技术学院 龚涛