类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。
对象是类的实际变量,类似于变量定义“int i=1;”中整型int与整型变量i的关系。对象是类的实例化,对象承袭了类中的数据和操作,只是各对象的数据初始化状态不同而已。类的对象是该类的某一特定实体,即类类型的变量。
▶5.4.2.1 对象定义
对象的定义一般有两种常用的方式:
(1)先声明类,后定义对象。如:
(2)声明类的同时,定义对象。如:
▶5.4.2.2 访问方式
对象中成员的访问方式为类内成员互访和类外成员互访。
(1)类内成员互访:直接使用成员名。
(2)类外成员互访:使用“对象名.成员名”方式访问public属性的成员,私有成员类外不能访问。
例1:
程序分析:该程序定义了复数类complex,包含数据成员real和imag,表示复数的实部和虚部:成员函数init用来给real和imag初始化,成员函数realcomplex和imagecomplex分别实现返回real和imag的值。X为具有complex类型的对象,其通过“X.init(x,y)”对数据成员real和imag进行初始化,通过“X.print()”将real和imag的值打印出来。(www.xing528.com)
如果在主函数main中使用语句“X.real”或“X.imag”则错误,因为real和imag是类complex的私有成员。
注意:如果定义的是指向对象的指针,则访问对象时,使用“一>”操作符。
例2:
程序分析:功能和例1相同,写法上p是指针变量,所以引用指针变量的成员时用“p->”来表示,而不能用“p.”表示。
▶5.4.2.3 对象赋值
给对象赋值如同给变量赋值一样,可以给变量赋具体值,也可以将另一个变量的值赋给它。同样,对象也可以给对象赋值,但注意不同类是不能直接赋值的(除非进行类型转换)。同类对象间可以进行赋值,这时所有数据成员会逐个赋值。
程序分析:程序通过“Y=X;”语句将对象X的值赋给对象Y,则X的数据成员逐个赋值给Y的各个数据成员,即Y.real=X.real,Y.imag=X.imag。所以Y对象的数据成员分别被赋值为与X的数据成员相等的值3.25和5.6。
说明:
(1)对象赋值时,两个对象的类型必须相同。
(2)赋值仅使对象的数据相同,那么对象仍是分离的。
(3)将一个对象赋给另一个对象时,如果类中定义了指针,则可能产生错误。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。