标题: Lu系统扩展动态库LuSystem之类及对象 [打印本页] 作者: forcal 时间: 2011-11-28 20:39 标题: Lu系统扩展动态库LuSystem之类及对象 类(class)是一个具有数据成员和方法成员的自定义数据结构。类可以继承和派生,类的层次结构是一棵树。7 }7 g: O- ]1 e3 b. n
" A! i6 B6 ^% e8 @( N" e
类对象(obj)是类的实例。 ! X3 t6 o6 Z/ [6 a, h5 o % f, f1 {9 w1 \7 m& N/ Lsys::class{... ...}:创建类定义" _! @7 R8 M2 K4 i2 U7 ~3 `( v$ U/ Z
: N' c8 t: P6 q4 H0 R$ x9 I( G) F7 B 类定义格式如下:
class{#cMyClass: #cBase1, #cBase2, ... //定义类cMyClass,继承自cBase1和cBase2, ... 4 E r; _) B( \5 H
private: //私有数据成员 ! n; c( e) G% ?4 b7 A9 e
#pvMem1, #pvMem2, ...: R% u) w. h% P; l6 `) u% ?, u; G( F
public: //公有数据成员 5 ]5 n8 _& D2 |& j
#plMem1, #plMem2, ...; m1 h: [+ v; }& T
method: //方法(函数成员)6 M4 A2 s# J: G0 B# H& l
#__init__ : @init, #__del__ : @delme, #mFun1 :@Fun1, #mFun2 :@Fun2, ...: H9 s4 T+ T3 n, d: A6 A
};
复制代码
类定义中,类名称、基类名称、成员及方法都是以#开头的标识符,不可重复。类名称在最前面,其次是基类名称;private、public及method的次序是任意的,且可多次定义;方法标识符后必须提供函数句柄。类成员的存储顺序与其定义顺序不一定相同。0 W" B) Y8 W! y8 x5 U: p
! O5 I9 {3 y2 o' c# x #__init__和#__del__只可被定义为方法,其中#__init__用于定义构造函数,#__del__用于定义析构函数。若这两个方法被缺省,其函数句柄被自动指定为0。构造函数和析构函数只有一个参数,即对象本身。0 ~+ r& {1 t! a+ F) q, R6 e- t2 E