====== 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
结构被转换成字符串时调用,必须返回字符串