我可以在Object Pascal中定义类中的类型吗?

时间:2014-11-29 15:33:23

标签: types pascal delphi

这是一个例子(不起作用):

type
    menu = class
        private
            menu_element = RECORD
                id: PtrUInt;
                desc: string;
            end;
        public
            procedure foo();
    end;

2 个答案:

答案 0 :(得分:5)

是的,你可以。但由于您要声明类型,因此必须键入有效的type expresssion

type menu = class
  private
    type menu_element = RECORD
      id: PtrUInt;
      desc: string;
    end;
end;

答案 1 :(得分:3)

如果将“=”更改为“:”,则Free Pascal会接受此选项。字段用“:”声明,类型带“=”

{$mode Delphi}
type
    menu = class
        private
            menu_element : RECORD
                id: PtrUInt;
                desc: string;
            end;
        public
            procedure foo();
    end;

procedure menu.foo;
begin
end;


begin
end.

Turbo Pascal和Delphi(和2.2之前的FPC)禁止这样做。由于Apple方言,Free Pascal恢复了这种旧的(Classic Pascal)行为。