class 类声明
语法
- parallel? class 标识符 (: 其他Class类型)? { 类成员或函数1 * }
注释:
描述
class 是 GS 在面向对象方面的一个补充,class 用于声明一个 class_map 类型,该类型是一个特殊的 map,
与普通的 map 相比,class_map 具有以下特性:
- 键只能是字符串类型。
- 键值对的类型和数量固定,不能删除或新增键值对。编译期能据此进行更严格的类型检查。
- 支持继承,可以通过继承已有的
class_map来创建新 的class_map。 - 拥有方法。
在 class 声明中,可以使用 parallel 关键字来声明并行类(parallel class)。并行类的实例是 parallel
的。
元表常量
每个 class 声明都会隐式地创建一个对应的 class_map 常量,该常量被称为 parent-map 或 元表,该元表包含对应
class 类型的所有成员的默认值,以及所有的成员函数:
class Example
{
int a = 1;
private string b = "Hello";
protected float c = 3.14;
public void foo(Example self)
{
printf("Hello from Example.foo\n");
}
}
writeln(Example); // 输出 Parent-map 常量的信息