文档详情

面向对象程序设计及C++ 教学课件 作者 朱立华 朱建 俞琼 第3章_类和对象.ppt

发布:2017-08-15约1.55万字共78页下载文档
文本预览下载声明
面向对象程序设计及C++ 主讲: 第3章 类和对象 本章作业 作业本:P107页~ P113页:一、二(2、4) 、三(1、2、5)、四(1、4) 本章内容提要 类的定义 对象的定义及使用 构造函数与析构函数 静态成员 对象成员 常类型 友元 本章内容安排 3.1 由结构到类 3.2 对象的定义及使用 3.3 构造函数与析构函数 3.4 类的几种特殊成员 3.5 友元 3.6 对象数组、对象指针和对象引用 3.7 有关对象的形式参数 3.8 本章小结 3.1 由结构到类 struct Point {private: double x,y; public: void SetPoint(double newx,double newy); //设置坐标值 double GetX(); //提取x坐标值 double GetY(); //提取y坐标值 }; 3.1.2 C++语言中类的定义 类是面向对象程序设计的核心,利用它可以实现对象的抽象、数据和操作的封装以及信息的隐藏。在面向对象程序设计中,首要任务是类的设计和对象的创建。 类是对具有相同属性(数据)和行为(操作、方法)的一组对象的抽象。 C++语言中定义类的一般格式如下: class 类名 { [private:] 私有数据成员和成员函数 protected: 保护数据成员和成员函数 public: 公有数据成员和成员函数 }; 例3.1的关于位置的结构体struct point可以用类形式改写 class Point {private: //private可以缺省 double x,y; //数据成员 public: //成员函数 void SetPoint(double newx,double newy) { x=newx; y=newy; } double GetX() { return x; } double GetY() //成员函数,提取y变量值 { return y; } }; //切记分号不可省略 进行类的定义时应注意以下几点。 (1)在类的定义中不能对数据成员进行初始化。 class Point { private: //private可以缺省 double x=4,y=5; //数据成员 ……. } (2)类的任何成员都必须指定访问属性,一般情况下将成员函数定义为公有成员,为了体现对数据的封装性,将数据成员定义为私有成员或保护成员。 (3)类定义中的属性出现顺序无严格限制,甚至可以交叉出现 (4)数据成员可以是任何数据类型,但是不能用自动(auto)、寄存器(register)或外部(extern)进行存储类别的说明。 (5)类定义必须以分号“;”结束。如果丢失“;”符号,编译器会认为类定义没有结束,造成编译错误。 3.1.3 访问属性 3.1.4 类成员函数的定义 成员函数的定义通常采用两种方式。 第一种:将成员函数定义在类的内部,使其自动成为内联函数。 如例3.2、3.3,请在VC++下运行 第二种是在类定义中只给出成员函数的原型,而成员函数的定义放在类的外部。 类外定义的一般形式如下: 函数返回类型 类名::成员函数名(形式参数表) { //函数体 } 3.2 对象的定义及使用 类作为一种类型在程序中只有通过定义该类型的变量——对象,才能发挥作用 对象定义的一般格式如下: 类名 对象名1,对象名2,……, 对象名n; 例如:Point A,B; 3.2.1 定义类的对象 定义类的对象可以有两种方式: 一种是在定义类的同时给出类的对象,如例3.3中A、B对象的定义 另一种是在类定义结束后,按类名 对象名形式给出 NOTE:类定义仅提供该类的类型定义,不占用内存空间,只有在定义了类的对象之后,编译系统才会给对象在内存中分配相应的内存空间。 3.2.2 对象中成员的访问 访问的方式有两种:圆点访问形式和指针访问形式 注意:类中互访直接使用成员名 对象只能用前一种方式访问成员,而指向对象的指针用两种方式都可以访问。 3.2.2 对象中成员的访问 1.圆点访问形式就是采用成员运算符“.”,其一般格式如下: 对象名.成员 或 (*指向对象的指针).成员 例如: Date today,*t; to
显示全部
相似文档