Как прочитать значение переменной указателя в Turbo Pascal?

У меня есть следующий код в Object Oriented 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 Кнопка Я получаю следующую ошибку - что не так?

кроме того (я не думаю, что ) char нужен здесь:


Вопрос № 3

как прочитать значение переменной указателя?

1 ответ

  1. Да, Init() это имя конструктора.

  2. Вы не можете оценить вызов функции (At() является функцией-членом TMyNumber, унаследованной от TObject).

  3. Если имеется в виду, как интерпретировать нотацию указателя Паскаля: начальный "$" означает шестнадцатеричное значение. Первое значение ($888F) - это сегмент, а второе значение ($8) - это смещение внутри сегмента. (Предполагая, что вы понимаете концептуальные сегменты в 16 средах.) Если вы имеете в виду, как читать значение указателя во время выполнения: используйте seg() чтобы получить сегмент и ofs() чтобы получить смещение, как seg(MyColl[myindex]) а также ofs(MyColl[myindex]),

Другие вопросы по тегам