Dynamic polymorphism

Jarrett Billingsley kb3ctd2 at yahoo.com
Thu Apr 12 06:53:06 PDT 2007


"macky" <martin.butina at gmail.com> wrote in message 
news:evksq3$223e$1 at digitalmars.com...
> Hi all!
>
> I'm trying to figure out how dynamic polymorhism is done the right way in 
> D...
>
> interface I
> {
>    ...some required functions...
> }
>
> class BaseClass()
> {
>    ...implementation of interface...
> }
>
> class Customer() : BaseClass
> {
>   ...some members and overriden baseclass functions...
> }
>
> class Process()
> {
>    void DoSomething(BaseClass object)
>    {
>        //I want to process all classes derived from base class
>    }
> }
>
> void Main()
> {
>   Customer customer = new Customer();
>   Process process = new Process();
>   process.DoSomething(customer);
> }
>
> Even though this is working tupleof is not returning any value (I suppose 
> becouse when creating an instance customer is casted in base class and the 
> link is broken - actualy we are dealing with a partial clone).
> Is this the right way of doing things? I know that in c++ you should 
> provide a reference of the customer object not the copy and in c#/java 
> everything is provided by reference. I tried to provide a "ref" in the 
> input params ( void DoSomething(ref BaseClass object)) but this is not 
> accepted. How can I solve this? Thanx.

What _are_ you doing, anyway?  Why do you need to use .tupleof to do 
polymorphism, why are all your classes templates with empty parameter lists, 
and what does "I want to process all classes derived from base class" mean? 




More information about the Digitalmars-d-learn mailing list