Как прочитать значение переменной указателя в 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 ответ
Да,
Init()
это имя конструктора.Вы не можете оценить вызов функции (
At()
является функцией-членом TMyNumber, унаследованной от TObject).Если имеется в виду, как интерпретировать нотацию указателя Паскаля: начальный "$" означает шестнадцатеричное значение. Первое значение ($888F) - это сегмент, а второе значение ($8) - это смещение внутри сегмента. (Предполагая, что вы понимаете концептуальные сегменты в 16 средах.) Если вы имеете в виду, как читать значение указателя во время выполнения: используйте
seg()
чтобы получить сегмент иofs()
чтобы получить смещение, какseg(MyColl[myindex])
а такжеofs(MyColl[myindex])
,