|
|
类是数据以及用于操纵该数据的方法(函数)的集合,是逻辑上相关函数与数据的封装。它是对所要处理问题的抽象描述,它把数据(事物的属性)和函数(事物的行为/操作)封装为一个整体。
|
|
|
|
|
|
其中,private、 public、 protected称为访问权限控制关键字,其作用是限制"可见性"。在类的定义中,以上3种关键字出现的次数和先后次序都没有限制,默认被认为是private。这3种关键字对应的访问可见性如下。
|
|
|
.private:私有成员,只能在成员函数内访问。
|
|
|
|
.protected:保护成员,只能由对象内部或其派生类对象访问。
|
|
|
面向对象的思想是对对象的属性(成员变量)进行操作,应该通过对象的方法(成员函数)来进行,对象的方法是对象和外部的接口。将类的成员变量声明为private,能保证对该成员的操作都是通过类的方法来进行的。这样可以避免出错(如对成员变量不恰当地赋值),也便于修改程序。在修改类的定义时,只要修改类的成员函数就可以了,不需要修改使用该类成员的代码。如果某些成员函数只被其他成员函数调用,不作为对象的界面,那么也可以将它声明为private。
|
|
|
|
|
其中,运算符"::"称为作用域解析运算符,它指出该函数是属于哪一个类的成员函数。当然也可以在类的定义中直接定义函数。
|
|
|
|
|
|
(1)第一种是直接定义类的对象。如CGoodsCar这个定义创建了CGoods类的一个对象Car,同时为它分配了属于它自己的存储块,用来存放数据和对这些数据实施操作的成员函数(代码)。与变量定义一样,一个对象只在定义它的域中有效。第一种方法通过"对象名.成员名"方式访问对象成员。
|
|
|
(2)第二种是采用动态创建类的对象的方法,当然变量也同样可动态创建。所谓动态,是指在程序运行时建立对象。而第一种方法是在编译时(程序运行前)建立。第二种方法通过对象指针访问对象成员。
|
|
|