You would have to make ProgrammersCacluator
and MathematiciansCalculator
to inherit from same base in slice
, something like this:
interface BaseCacluator {
idempotent int add(int a, int b);
};
interface ProgrammersCacluator extends BaseCalculator {
idempotent int rshift(int a, int b);
};
interface MathematiciansCalculator extends BaseCalculator {
idempotent int multiply(int a, int b);
};
Then you can use multiple inheritance to implement add()
only once and inherit that implementation:
class BaseCalculatorI : virtual public BaseCalculator {
public:
virtual int add( int a, int b, const Ice::Current & );
};
class ProgrammersCalculatorI : public BaseCalculatorI, virtual public ProgrammersCalculator {
public:
virtual int rshift( int a, int b, const Ice::Current & );
};