面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第06章.ppt
文本预览下载声明
北京林业大学 软件教研室 第6章 类和对象 本章主要内容 (1)掌握类与对象的概念、定义方法及二者的区别。 (2)掌握类的成员函数的定义、保存以及调用方法。 (3)掌握类中成员的访问机制和方法。 (4)了解对象的作用域和生存期。 (5)理解并掌握构造函数、析构函数、默认构造函数、缺省参数的构造函数和拷贝构造函数的含义、定义方法以及它们在对象的构造和撤消中的作用。 (6)理解并掌握当一个类的对象作为另一个类的数据成员时,其利用初始化表调用构造函数的方法和执行顺序。 (7)掌握堆对象和对象数组的使用。 (8)掌握类的静态成员(静态数据成员和静态成员函数)的概念、定义方法及其作用。 (9)掌握常对象与常成员(常数据成员和常成员函数)的概念、定义以及使用方法。 (10)掌握友元函数与友元类的概念、定义方法及其作用。 6.1 类与对象的定义 6.1.1 类的定义 类是把各种不同类型的数据(称为数据成员)和对数据的操作(称为成员函数)组织在一起而形成的用户自定义的数据类型。 C++中,类定义包括类说明和类实现两大部分。 说明部分提供了对该类所有数据成员和成员函数的描述; 实现部分则提供了所有成员函数的实现代码。 类定义的一般形式为: class 类名 { private: 数据成员或成员函数 protected: 数据成员或成员函数 public: 数据成员或成员函数 }; 各成员函数的实现代码 如:下例中定义描述图书的类定义。 class Record { private: //private成员 char bookname[20]; int number; public: //public成员 void regist(char *a,int b); void show(); }; 6.1.2 成员函数的定义 类中的成员函数可以在以下两处定义: (1)类内 class Record { private: char bookname[20]; int number; public: void regist(char *a,int b) { strcpy(bookname,a); number=b; } void show() { cout”名称:”booknameendl; cout”号码:”numberendl; } }; (2)类外 返回值类型 类名::成员函数名(参数说明) { 函数体 } class Record { private: char bookname[20]; int number; public: void regist(char *a,int b); void show(); }; void Record::regist(char *a,int b) { strcpy(bookname,a); number=b; } void Record::show() { cout”名称:”booknameendl; cout”号码:”numberendl; } 从类的设计者的视角来看,类定义的代码可分为接口部分与实现部分; 从类的使用者来看,看到的只是类的使用接口。 6.1.3 对象及指向对象的指针 1.对象的定义 类名 对象名表; 类是抽象的概念,而对象是具体的概念; 每个对象占用了各自的存储单元,每个对象都各自具有了该类的一套数据成员(静态成员除外),而所有成员函数是所有对象共有的。 每个对象的成员函数都通过指针指向同一个代码空间。 2.指向对象的指针 类名 *指针变量名表; Record book3; Record *p; p=book3; 6.1.4 访问对象的成员 访问对象的成员包括 读写对象的数据成员 调用它的成员函数 对象名.数据成员名 或 对象名.成员函数名(实参表) 指针变量名-数据成员名 或 指针变量名-成员函数名(实参表) (*指针变量名).数据成员名 或 (*指针变量名).成员函数名(实参表) 【例6-1】访问对象的成员。 6.1.5 指向类成员的指针 指向类成员的指针包括: 类数据成员指针 类成员函数指针 1.类数据成员指针 定义:类型 类名::*指针变量名; 指向:类数据成员指针变量名=类名::类数据成员名; 访问:对象名.*类数据成员指针变量名; 【例
显示全部