第三章面向对象的程序设计
本章导读
掌握类与对象的概念,类与对象的定义方法及二者间的区别。
掌握类的成员函数的定义方法、保存方法及调用方法。掌握类中成员的访问机制和方法。
了解对象的作用域和生存期。
理解并掌握构造函数、析构函数、拷贝构造函数、默认构造函数和缺省参数的构造函数的含义、定义方法以及在对象的构造和撤消中的作用。
理解并掌握当一个类的对象作为另一个类的数据成员时,利用初始化表调用构造函数的方法、构造函数的执行顺序。
1
本章导读
理解继承的概念和意义,理解单一继承、多重继承。理解并掌握派生类构造函数的编写要求,以及派生类对象的构造过程和机理。
掌握虚函数和多态性的概念,掌握虚函数的定义方法、调用方法及其在实现多态性方面所起到的作用。了解纯虚函数与抽象基类的概念。
了解类的静态成员(静态数据成员和静态成员函数)的概念、定义方法及其作用。
了解友元函数与友元类的概念、定义方法及其作用。
了解运算符重载及在程序中实现运算符重载的方法。
了解模板的概念,在程序中如何定义类模板和函数模板。
2
类与对象的定义
类和对象是面向对象程序设计(OOP)的两个最基本概念。所谓对象就是客观事物在计算机中的抽象描述;类是对具有相似属性和行为的一组对象的统一描述。
类的定义
C++的类是在结构体的基础上扩充而来的。类是把各种不同类型的数据(称为数据成员)和对数据的操作(成员函数)组织在一起而形成的用户自定义的数据类型。
C++中,类定义包括类说明和类实现两大部分。说明部分提供了对该类所有数据成员和成员函数的描述,而实现部分提供了所有成员函数的实现代码。
3
类与对象的定义
类定义的一般形式为:
class 类名
{private:
数据成员或成员函数
protected:
数据成员或成员函数
public:
数据成员或成员函数
};
<各成员函数的实现代码>
4
类与对象的定义
说明:
1. class是定义类的关键字,类名由用户自己定名,必须是C++的有效标识符,但一般首字母大写。
2. 大括号的部分是类的成员(数据成员和函数成员),它们分成三部分,分别由private、public、proctected三个关键字后跟冒号来指定。这三部分可以任何顺序出现,且在一个类的定义中,这三部分并非必须同时出现。
(1)如果数据成员或成员函数在类的private部分,那么在类之外是不能存取的,只有类中的成员函数才能存取private的数据成员和成员函数。
(2)在一个类的public部分说明的数据成员或成员函数可被程序中的任何函数或语句存取,public成员多为成员函数,用来提供一个与外界的接口,外界只有通过这个接口才可以实现对private成员的存取。
5
类与对象的定义
(3)在类的protected部分说明的数据成员和成员函数是不能在类之外存取的,只有类的成员函数及其子类(派生类)可以存取protected的成员。
(4)当定义类时,当未指明成员是哪部分时,默认是属于private成员,但一般不要采用默认形式。
如:下例中定义描述图书的类定义
class Record
{ private: //private成员
char bookname[20]; //数据成员bookname,
// 用于表示图书的名称
int number; //数据成员number,表示图书编号
6
类与对象的定义
public: //public成员
void regist(char *a,int b); //成员函数regist,用于给
//各数据成员赋值
void show(); //成员函数show,显示各数据成员的值
};
要特别注意,在类的定义中,类的说明部分的右边大括号后面必须有一“;”.
根据类的定义,可看出:类是实现封装的工具,所谓封装就是将类的成员按使用或存取的方式分类,有条件地限制对类成员的使用,而封装是通过public和private与成员函数实现的。private的成员构成类的内部状态,public的成员则构成与外界通信的接口,通过public的成员函数来使用private的数据成员,从而在C++中实现了封装。
7
类与对象的定义
成员函数的定义
类中的成员函数可以在以下两处定义:
(1)将成员函数的定义直接写在类中:
如:对于前面定义的图书类Record来说,其成员函数regist和show的定义可直接写在类的定义体中。
class Record
{ private:
char bookname[20];
int number;
8
类与对象的定义
第3章 面向对象的程序设计 来自淘豆网m.daumloan.com转载请标明出处.