At first I thought I could create a union type, but now I think that the array just creates pointer space. In any case, this is one way to get mixed arrays if anyone is interested.
Function Main()
Local oo:Animal[]= New Animal[10]
oo[0] = New Dog(5)
oo[1] = New Cat(2,3,4)
Print Dog(oo[0])
Print Cat(oo[1]) ''union?
Print oo[0] ''note the odd behavior here for c++ target
Print oo[1]
End
Interface Animal
Method ToString$()
end
Class Dog Implements Animal
Field x:Int
Method New(x:Int)
Self.x=x
End
Method ToString$()
Return x
End
End
Class Cat Implements Animal
Field x:Int, y:Int, z:Int
Method New(x:Int,y:Int,z:Int)
Self.x=x; Self.y=y; Self.z=z
End
Method ToString$()
Return x+" "+y+" "+z
End
End
|