question regarding oop

Simen Kjaeraas simen.kjaras at gmail.com
Sat Jun 28 14:06:44 PDT 2008


Moritz <mpipahl at gspgmbh.com> wrote:

> Hello everyone,
>
> Im new to the D language and have a question regarding a slightly  
> advanced matter:
>
> Im currently porting the code of a game Im writing to D, and right now  
> Im working on the event handling (reacting to user input).
> Since Im doing a strategy game, I have several menues and I need a way  
> to connect a menu to the state my game is in, so when the player clicks  
> somewhere, I can use the hashtable to determine which menu class should  
> react.
>
> I think an asossiative array is the way I should go, key would be the  
> state my game is in and the value would be the corresponding Menu.
> But since there are several different menu classes, I need some way to  
> put them all in the value area of the array.
>
> In C++, I could make them all inherit from a specific base class, and  
> use the base class as data type for the value, so I effectively had  
> different menues in one datatype in that hashmap.
>
> How can I do this in D?

The exact same way, for one.


class Menu
{
}

class DerivedMenu : Menu
{
}

Menu[GameState] menuArray;

...

menuArray[currentGameState] = new DerivedMenu();

-- Simen


More information about the Digitalmars-d-learn mailing list