====== Covariant Script 结构和类 ====== ===== 7.1 定义 ===== struct 结构名 结构体 end 结构定义后结构名就可以作为类型名使用 结构体中的变量或函数称为结构体的成员。在结构体中只允许定义成员 **可用''class''代替''struct''关键字编写程序,两者无实质区别** ----- \\ ===== 7.2 成员函数 ===== 成员函数是一种特殊的[[manual:reference:grammar:function:main_page|函数]],主要区别在于拥有一个隐式的this参数 this 指的是调用成员函数的结构实例本身。\\ 比如''a.test()'',则 a 就是在 test 成员函数中 this 参数指向的对象 ----- \\ ===== 7.3 派生和继承 ===== struct 结构名 extends 父类结构名 结构体 end 派生结构将引入父类结构的所有成员并自动插入一个名为 ''parent'' 的成员 ''parent'' 成员是结构实例本身的父类实例 如果派生类想要重新实现父类函数,可使用 ''override'' 关键字覆写 function 函数名(参数列表(可选)) override 语句块 end ----- \\ ===== 7.4 控制结构的行为 ===== ==== 构造函数 ==== function initialize() 语句块 end 结构被构建时调用,无返回值(返回值无意义) \\ ==== 复制函数 ==== function duplicate(orig) 语句块 end 结构被复制时调用,参数为被复制的实例,返回值无意义 \\ ==== 等于比较函数 ==== function equal(orig) 语句块 return true end 结构被比较时调用,参数为等号右边的实例,必须返回''true''(代表相等)或 ''false''(代表不相等) \\ ==== 析构函数 ==== function finalize() 语句块 end 结构被回收时调用,返回值无意义 \\ ==== 字符串转换函数 ==== function to_string() 语句块 return new string end 结构被转换成字符串时调用,必须返回字符串