《C++》课程教学课件(讲稿)第三章 类与对象

20:43:40 第三章类与对象 本章主要内容: 1.类和对象、类的创建、对象的创建和使用一重点(掌握 2.this指针 重点难点(掌握) 3.访问控制、封装与信息隐藏一重点难点(理解) 4.友元 重点 5.静态成员 6. cons t与类成员
20:43:40 第三章 类与对象 本章主要内容: 1. 类和对象、类的创建、对象的创建和使用 --重点(掌握) 2. this指针 -- 重点 难点(掌握) 3. 访问控制、封装与信息隐藏 -- 重点 难点(理解) 4. 友元 -- 重点 5. 静态成员 6. const与类成员

20:43:40 §1概念 程序举例 银行帐户 链表操作
20:43:40 §1 概 念 程序举例 .银行帐户 .链表操作

存在的问题 函数名可能与对其它结构进行操作的函数发生冲突 客户程序员易忘记调用 initialize0和 cleanup0 数据和对数据进行的操作分离,不符合现实世界中事物的 实际情况,也不符合人的思维习惯 数据完全对外暴露,无法保证对数据的访问的合法性、安 全性 °解决方法 把对数据进行操作的函数做成结构体的成员,以解决名字 冲突和数据与操作的分离问题 例:.修改后的银行帐户 修改后链表操作 ·将结构体改换为类,并在类上进行访问控制以解决数据外 露的问题 ·例:.银行帐户类 链表类 °用类的构造函数与析构函数保证初始化和清除工作一定会 进行 第四章
20:43:40 •存在的问题 – 函数名可能与对其它结构进行操作的函数发生冲突 – 客户程序员易忘记调用initialize()和cleanup() – 数据和对数据进行的操作分离,不符合现实世界中事物的 实际情况,也不符合人的思维习惯 – 数据完全对外暴露,无法保证对数据的访问的合法性、安 全性 •解决方法 •把对数据进行操作的函数做成结构体的成员,以解决名字 冲突和数据与操作的分离问题 例:.修改后的银行帐户 .修改后链表操作 •将结构体改换为类,并在类上进行访问控制以解决数据外 露的问题 • 例:.银行帐户类 .链表类 •用类的构造函数与析构函数保证初始化和清除工作一定会 进行 --- 第四章

风043:40 概念: 对象:现实世界中事物或实体在计算机中的抽象描述或 表 类:对象的抽象描述和概括,从总体上描述了这一类对 象拥有的属性(说明对象的结构)和具有的行为 成员变量:结构体或类内部的变量称为结构体或类的成 员变量 成员函数:结构体或类内部的函数称为结构体或类的成 员函数 二者统称为结构体或类的成员
20:43:40 •概念: – 对象:现实世界中事物或实体在计算机中的抽象描述或 表示 – 类:对象的抽象描述和概括,从总体上描述了这一类对 象拥有的属性(说明对象的结构)和具有的行为 – 成员变量:结构体或类内部的变量称为结构体或类的成 员变量 – 成员函数:结构体或类内部的函数称为结构体或类的成 员函数 二者统称为结构体或类的成员

风0:43:0 §2类与对象 类 类的定义 例:点类 c1ass类名 class Point private private: float fx fY: 私有成员表; public: public void setX(int x)(fX=x 公有成员表; void setY(int y)(fY=y protected: float getXO return fX 保护成员表; float geto return fY;
20:43:40 §2 类与对象 class 类名 { private: 私有成员表; public: 公有成员表; protected: 保护成员表; }; 例:点类 class Point{ private: float fX,fY; public: void setX(int x){fX=x;} void setY(int y){fY=y;} float getX(){return fX;} float getY(){return fY;} }; 一.类 .类的定义:

风0:43:0 说明: c1ass:关键字 类名:需满足标识符的要求 成员表:若干成员构成的列表 成员包括数据成员(对应于属性)和函数成员(对应于行为 操作) 数据成员一般是变量或其它类的对象 成员变量 函数成员一般是函数的声明或定义-成员函数 private、 public、 protected:关键字,用于对类中的成员 进行访问控制,在类中可以任意次序出现任意多次,分别 表示其后的成员为私有成员、公有成员和保护成员 般将成员变量定义成私有的,而将成员函数定义成公有 的,将提供给客户程序员使用的函数声明成公有的,而将在 类内部使用的辅助函数声明成私有的
20:43:40 说明: .class:关键字 .类名:需满足标识符的要求 .成员表:若干成员构成的列表 成员包括数据成员(对应于属性)和函数成员(对应于行为、 操作) 数据成员一般是变量或其它类的对象 ----- 成员变量 函数成员一般是函数的声明或定义 ----- 成员函数 .private、public、protected:关键字,用于对类中的成员 进行访问控制,在类中可以任意次序出现任意多次,分别 表示其后的成员为私有成员、公有成员和保护成员 .一般将成员变量定义成私有的,而将成员函数定义成公有 的,将提供给客户程序员使用的函数声明成公有的,而将在 类内部使用的辅助函数声明成私有的

风0:43:40 类的成员函数 在类中声明或定义的函数 成员函数定义:两种方法 在类中定义:创建类的同时,在类中直接给出函数体 例: class point{ float fx fY. public void setX(int x)fX=x void sety (int y)(fY=y float getX()( return fX f loat gety()( return fY; 这样的成员函数将成为内联函数,故其函数体应尽可能简洁 在类中声明,在类外定义(实现):使用作用范围解析运算符: 一般把声明放在h的文件中,该文件称做类的接口文件 而把定义放在.cpp的文件,该文件称做类的实现文件 例:银行帐户 链表类
20:43:40 类的成员函数 .在类中声明或定义的函数 .成员函数定义: 两种方法 .在类中定义:创建类的同时,在类中直接给出函数体 例:class Point{ float fX,fY; public: void setX(int x){fX=x;} void setY(int y){fY=y;} float getX( ){ return fX;} float getY( ){ return fY;} }; 这样的成员函数将成为内联函数,故其函数体应尽可能简洁 .在类中声明,在类外定义(实现):使用作用范围解析运算符:: 一般把声明放在.h的文件中,该文件称做类的接口文件 而把定义放在.cpp的文件,该文件称做类的实现文件 例:.银行帐户 .链表类

20:43:40 二.对象 对象:把数据和对数据的操作集成在一起形成的独立实体 类的变量,一个类的对象是该类的一个实例 创建(定义对象的一般形式 类名对象名列表; 1]: Point ptl, pt2, *pPtr 对象的使用:与结构体变量的使用方法相近 通过对象名使用对象的成员(公有成员) 对象名.成员名 例:pt1.setX(100); pt1 setY (10) 通过指向对象的指针使用对象 对象指针变量->成员名 例:pPtr= new Point;//或pPtr=&pt1; pPtr->setX(10) pPtr->setY(20)
20:43:40 二.对象 .对象:把数据和对数据的操作集成在一起形成的独立实体 类的变量,一个类的对象是该类的一个实例 .创建(定义)对象的一般形式: 类名 对象名列表; 例: Point pt1,pt2,*pPtr; .对象的使用:与结构体变量的使用方法相近 .通过对象名使用对象的成员(公有成员): 对象名.成员名 例: pt1.setX(100); pt1.setY(10); .通过指向对象的指针使用对象 对象指针变量->成员名 例:pPtr=new Point; //或 pPtr=&pt1; pPtr->setX(10); pPtr->setY(20);

20:43:40 对象在内存中的存储 创建对象时以类为样板,分配内存空间 Point ptl, pt 2: ptl setX(10); pt1 setY(15) pt2. setX(100); pt 2. setY (12); pt2 fX 10 类 Point的公用区 100 fX fY 15 setX0代码 fY setO setY0代码 setO setYo getX0代码 setYo getXO getY0代码 getXO getO getY O 创建对象时通常仅分配成员变量的空间,而成员函数的代码 由各个对象共享 逻辑上每个对象都包含了一份类中定义的成员
20:43:40 对象在内存中的存储 .创建对象时以类为样板,分配内存空间 Point pt1,pt2; pt1.setX(10);pt1.setY(15); pt2.setX(100);pt2.setY(12); 15 10 fY fX setX() setY() getX() getY() pt1 12 100 fY fX setX() setY() getX() getY() pt2 getY()代码 getX()代码 setY()代码 setX()代码 类Point的公用区 . 创建对象时通常仅分配成员变量的空间,而成员函数的代码 由各个对象共享 . 逻辑上每个对象都包含了一份类中定义的成员

风0:43:0 §3this指针 问题: 类 Account的成员函数中,并没有指明引用的 sName、sID 和fBa1ance分别是哪一个对象的成员,若创建了多个该类的 对象,比如: Account accl, acc2.. 如何保证acc1. Initialize(.)、ac1. Deposit() ac1. Withdraw()和ac1.Get- ba lance0操作的是acc1内部 的成员变量,而ac2. Initialize(.)、ac2. Deposit(.) acc2. Wi thdraw()和acc2. Get balance0操作的是aCc2中的 成员变量?
20:43:40 §3 this指针 问题: 类Account的成员函数中,并没有指明引用的sName、sID 和fBalance分别是哪一个对象的成员,若创建了多个该类的 对象,比如: Account acc1,acc2,…; 如 何 保 证 acc1.Initialize(…) 、 acc1.Deposit(…) 、 acc1.Withdraw(…)和acc1.Get_balance()操作的是acc1内部 的成员变量,而acc2.Initialize(…)、acc2.Deposit(…)、 acc2.Withdraw(…)和acc2.Get_balance()操作的是acc2中的 成员变量?
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C++》课程教学课件(讲稿)第二章 C++语言初步.ppt
- 《C++》课程教学课件(讲稿)第六章 地址家族和名字解析(2/2).pdf
- 《C++》课程教学课件(讲稿)第六章 地址家族和名字解析(1/2).pdf
- 《C++》课程教学课件(讲稿)第十三章 MFC程序设计举例.ppt
- 兰州大学信息学与工程学院:《Windows SDK程序设计基础》WinMain函数:Windows程序的入口点(程建军).pdf
- 兰州大学信息学与工程学院:《Windows SDK程序设计基础》Windows程序的基本结构(程建军).pdf
- 《C++》课程教学课件(讲稿)第十二章 Windows程序设计初步.ppt
- 《C++》课程教学课件(讲稿)第十一章 输入/输出流.ppt
- 《C++》课程教学课件(讲稿)第十章 异常处理.ppt
- 《C++》课程教学课件(讲稿)第一章 面向对象程序设计概述.ppt
- 《C++》课程教学课件(讲稿)考核题目.doc
- 《Matlab讲解》教学资料:Matlab初步(讲稿)之四.doc
- 《Matlab讲解》教学资料:Matlab初步(讲稿)之三之补充.doc
- 《Matlab讲解》教学资料:Matlab初步(讲稿)之三.doc
- 《Matlab讲解》教学资料:Matlab初步(讲稿)之二.doc
- 《Matlab讲解》教学资料:调用 Matlab 软件.doc
- 《Matlab讲解》教学资料:调用 Matlab 软件初步.doc
- 《Matlab讲解》教学资料:用Matlab作最小二乘曲线拟合.doc
- 《Matlab讲解》教学资料:用Matlab求解非线性规划.doc
- 《Matlab讲解》教学资料:用Matlab解微分方程.doc
- 《C++》课程教学课件(讲稿)第四章 对象的初始化与销毁:构造函数与析构函数.ppt
- 《C++》课程教学课件(讲稿)第五章 运算符重载.ppt
- 《C++》课程教学课件(讲稿)第六章 名称空间.ppt
- 《C++》课程教学课件(讲稿)第七章 组合与继承.ppt
- 《C++》课程教学课件(讲稿)第八章 多态性(polymophism).ppt
- 《C++》课程教学课件(讲稿)第九章 模板.ppt
- 《C语言教程》教学资源(讲义)第一章 C 语言教程.doc
- 《C语言教程》教学资源(讲义)第二章 程序的灵魂一算法.doc
- 《C语言教程》教学资源(讲义)第三章 数据类型、运算符与表达式.doc
- 《C语言教程》教学资源(讲义)第四章 最简单的C程序设计一顺序程序设计.doc
- 《C语言教程》教学资源(讲义)第五章 分支结构程序.doc
- 《C语言教程》教学资源(讲义)第六章 循环控制.doc
- 《C语言教程》教学资源(讲义)第七章 数组.doc
- 《C语言教程》教学资源(讲义)第八章 函数.doc
- 《C语言教程》教学资源(讲义)第九章 预处理命令.doc
- 《C语言教程》教学资源(讲义)第十章 指针.doc
- 《C语言教程》教学资源(讲义)第十一章 结构体与共用体.doc
- 《C语言教程》教学资源(讲义)第十二章 位运算.doc
- 《C语言教程》教学资源(讲义)第十三章 文件.doc
- 《C语言程序》课程PPT教学课件(Visual C++6.0环境)第5章 函数与预处理.ppt