> > I think you have a typo in your example :) > (and your example doesn't reflect the error messages), How do you mean? Like not at all? As you noticed it isn't the actual code, but I thought it would reflect it though.
> but that isn't the problem. > > In a strongly typed language, you cannot access subclass functions that > aren't defined in the base class unless you are sure the instance is of > the subclass type. > > to fix, you should do this: > > if(auto ban = cast(Banana)fruit[1]) > ban.peel(); > > the if(auto ban = ...) ensures that fruit[1] is a Banana. If you are sure > it will always be a banana (i.e. the cast doesn't return null), you can > do: > > (cast(Banana)fruit[1]).peel(); Yay, thanks! Now that you mention it, I think I've had this problem before :/ even though it is really logical, thx again. In stead of numbers I use an enum, which makes it really difficult to get this wrong: fruits[BANANA].peel(); :D Now that I got this out of the way I see peel() should be public.
