类的定义
1)类的定义格式
很多书上是这样定义类(class)的,“类是对具有共同属性和行为的一类事务的抽象描述,共同属性被描述为类中的数据成员,共同行为被描述为类中的成员函数”。
C++中类的一般定义形式如下:
class是定义类的关键字,其后的“类名”是用户为类取的名字(类名要符合标志符的命名规则)。后面的花括号表示类的定义范围。花括号内的部分就是类的成员表,包含数据成员和成员函数。最后的分号表示类定义结束,不能省略。
类中的数据成员和成员函数都具有一定的存取权限,也就是访问权限。一般C++中类成员的访问权限由存取指明符关键字public、private或protected所指定。具体使用时,还要在存取指明符后面加上“:”,使之与成员定义分开,此后的所有成员都具有该存取指明符所规定的存取权限,直到出现另一个存取指明符改变存取权限为止。若成员定义的前面没有使用存取指明符,则对于类成员来说隐含具有private存取权限,但是对于结构体来说隐含具有public存取权限。
三个存取指明符的含义如下:
(1)public(公有的):具有该访问权限的类成员不但可以被类本身的成员函数所访问,也可以被本类以外的其他外部函数所访问,包括其他类的成员函数。
(2)private(私有的):具有该访问权限的类成员只能被这个类本身的成员函数所访问,而别的外部函数或其他类的成员函数都不能访问它们。
(3)protected(受保护的):具有该访问权限的类成员只能被该类的成员函数、友元函数以及该类的派生类的成员函数和友元函数访问,但不能被类以外的一般外部函数访问。关于友元函数和派生类的概念稍后介绍。
一般情况下,按照面向对象程序设计的要求,把类中的数据成员定义为私有的,使得它们只能被本类的成员函数访问,不能被本类以外的函数访问。这样做可以使类的实例——对象中的数据得到隐藏和保护,不受外界有意或无意的破坏。
定义一个按钮类,按钮有长度、宽度和按钮上显示的文字三个属性;有设置按钮长度、设置按钮宽度、设置按钮上显示文本和显示设置值的四个成员函数。程序实现如下所示:
模仿上例定义一个矩形类,有长、宽两个属性;有同时设置长和宽的成员函数和计算矩形面积的成员函数。程序实现如下所示:
细心的读者肯定会发现在模仿实例中我们把成员函数的定义写在了数据成员定义的前面,这样写也是可以的。
一般来说,主张“以数据为中心”的那一类人