oo.ast

来自「一个编译器修改的例子」· AST 代码 · 共 36 行

AST
36
字号
(* Test function overriding *) include io.inc class A is    function f() : int is return 1;end class B inherits A is    function f() : int is return 2;end class C inherits B is    function f() : int is return 3;end function main(argv : array of string) : int is var obj : B; begin    obj := new C;    WriteString("Expect 3 : ");    WriteInt(obj.f());            (* Note: obj.C::f() is not allowed *)    WriteLine();    WriteString("Expect 2 : ");    WriteInt(obj.B::f());    WriteLine();    WriteString("Expect 1 : ");    WriteInt(obj.A::f());    WriteLine();    delete obj;    return 0;end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?