Accessing Inherited Functions

  • + 0 comments

    A cleaner solution :

    couldn't squeeze it down further.

    // class D inherit classes A, B and C
    class D: public A, B, C
    
    // Calls class specific func impl by using class scope resolution
    // Rest is maths 
             void update_val(int new_val)
             {
                 int factor = 1;
                 while (new_val != 1) 
                 {
                    factor = !(new_val % 5) ? 5 : !(new_val % 3) ? 3 : 2;
                    switch (factor)
                    {
                        case 5:
                                C::func(val);
                                break;
                        case 3: 
                                B::func(val);
                                break;
                        default:
                                A::func(val);
                                break;
                    }
                    new_val = new_val/factor;
                 }
              }