1

我在面向对象的 Turbo Pascal 中有以下代码(示例)。还有一些问题要问你们,他们有 Turbo Pascal 的知识——因为我找不到任何答案。

type PMyNumber =^TMyNumber;
     TMyNumber = object(TObject)
                 Number1:real;
                 Number2:real;
                 constructor Init(x,y:real);
                end;

问题 #1

我看到类似的代码new(PMyNumber,Init(-4,0))- 它是某种类型的对象构造函数吗?


问题2

someVariable := PMyNumber(MyColl[myIndex]^.At(j))^.Number1

我尝试查看MyColl[myIndex]^.At(j). 为此,我打开Evaluate/modyfy窗口,但单击Evaluate按钮后,出现以下错误 - 怎么了?

在此处输入图像描述

此外(我认为)这里不需要字符:

在此处输入图像描述


问题 #3

如何读取指针变量值?

在此处输入图像描述

4

1 回答 1

0
  1. 是的,Init()是构造函数的名称。

  2. 您无法评估函数调用(At()是从 TObject 继承的 TMyNumber 的成员函数)。

  3. 如果意味着如何解释 Pascal 指针符号:前导 '$' 表示十六进制值。第一个值 ($888F) 是段,第二个值 ($8) 是段内的偏移量。(假设您了解 16 环境中的概念段。)如果您的意思是如何在运行时读取指针的值:seg()用于获取段并ofs()获取偏移量,如seg(MyColl[myindex])ofs(MyColl[myindex])

于 2016-07-29T00:35:39.233 回答