类(class)是面向对象程序设计(OOP)实现信息封装的基础,类是用户自定义类型,也称为类类型,每个类包含数据说明和一组操作数据或传递消息的函数,分别称为数据成员和成员函数。以C++语言为例,C++包含三种类类型:class类、struct类和union类。
▶5.4.1.1 class类
类的定义:
其中,类名是自定义标识符,代表类类型的名称,必须符合标识符的规定。
关键字public,private和protected称为访问权限约束符。
(1)关键字public:定义公有成员,公有部分往往是一些操作,是提供给用户的接口功能。公有数据成员允许类内或类外的函数访问,公有成员函数允许在类内或类外调用。
(2)关键字private:定义私有成员,私有成员通常是一些数据成员,用来描述该类中对象的属性,类外对象或函数无法访问它们。私有数据成员只允许类内函数访问,私有成员函数只允许在类内调用。类外函数不允许访问私有数据成员,也不允许调用私有成员函数。
(3)关键字protected:定义保护成员,保护数据成员只允许类内或其子类(即派生类)中的函数访问,保护成员函数允许在类内或其子类中调用。其他函数不能访问该类的保护数据成员,也不能调用该类的保护成员函数。
通常,数据成员定义为私有成员,尽量不定义为公有成员。公有成员通常只定义成员函数,这些成员函数提供了使用这个类的外部接口,接口实现的细节在类外是不可见的,这样,类以外的代码不能直接访问类的私有数据,从而实现封装。
若在类体内没有明确指明成员的访问权限,则默认的访问权限为私有:在类体中不允许对所定义的数据成员进行初始化,因为类只是一种类型,而初始化或赋值都是针对变量或对象的。
类中可以分别定义数据成员和成员函数。
1)数据成员的定义
类的数据成员的定义类似结构体成员的定义,一般定义为
其中,数据类型可以为C++基本数据类型,也可以是构造类型甚至是类类型。(www.xing528.com)
2)成员函数的定义
类中成员函数的定义类似于普通函数的定义,类的成员函数可以定义在类内,也可以定义在类外。如果定义在类内,一般格式为
如果类的成员函数定义在类外,则要在函数名前加作用域运算符“::”,说明为哪个类的成员函数。一般格式为
说明:定义在类内的函数类似一般函数的写法,而且没有特殊声明时,类内定义的函数为内联函数。
下面是类成员函数定义在类外的写法:
说明:如果类的成员函数定义在类外,必须在函数名前加“类名::”表示是该类的成员函数。
▶5.4.1.2 struct类
C++语言允许结构体也能像class类一样包含数据成员和成员函数,把这种包含数据成员和成员函数的结构体称为struct类。例如:
默认情况下,结构类中数据成员和成员函数都是公有的。如果要在结构类中定义私有成员,需要显式地给出关键字private,需要说明的是结构体的这种用法C语言是不支持的。
▶5.4.1.3 union类
C++语言环境下,共用体和结构体一样可以定义自己的数据成员和成员函数。同样这种方法C语言是不支持的。例如:
说明:C++程序员一般习惯用class类来定义对象的形式,而用C的方式定义结构体和联合体。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。