I could be wrong (I'm not a C++ expert), but since the C++ code isn't using the new operator, then the Pascal equivalent is object types or advanced records. Using a class in this situation will create a minefield of memory leaks, and you may then blame Pascal.
I would implement as such:
type
TPerson = object
Name: String;
Num1, Num2: Single;
end;
function Person(Name: String; Num1, Num2: Single): TPerson;
begin
Result.Name := Name;
Result.Num1 := Num1;
Result.Num2 := Num2;
end;
var Persons: array of TPerson;
begin
Persons := [Person('John', 1.77, 80), Person('Maria', 1.65, 52), Person('Jim', 1.85, 95)];
end.
If you really need OOP then you should be using a storage method which owns the objects. ie: TComponent, TObectList, etc.